J'utilise la balise & nbsp dans jsx et cela ne rend pas l'espace. Ce qui suit est un petit extrait de mon code. Veuillez aider.
var Reporting=React.createClass({
render: function(){
return(
<div style={divPositionReporting}>
<p>Pricing Reports</p>
<hr></hr>
Select Scenario:
<select>
<option></option>
</select>
<button type="button">Get Pricing Report</button>
<br/>
Select Takeout Scenario:
<select>
<option></option>
</select>
<button type="button">Get Pricing Report</button>
<br/>
</div>
);
},
});
Réponses:
Voir: JSX en profondeur
Essayer:
Select Scenario:{'\u00A0'}
Ou:
<div dangerouslySetInnerHTML={{__html: 'Select Scenario: '}} />
Ou:
<div> </div>
jsfiddle
Mettre à jour
Après avoir lu certains des commentaires et essayé. Il est venu à mon attention que l'utilisation d'entités html à l'intérieur de JSX fonctionne bien (contrairement à ce qui est indiqué dans la référence jsx-gotchas ci-dessus [peut-être que c'est obsolète]).
Donc, utiliser quelque chose comme
R&D
:, produirait: 'R&D'. Il y a un comportement étrange avec
, qui le rend différemment, me faisant ainsi penser que cela ne fonctionne pas:Produit:
la source
devrait fonctionner correctement . Il y a un problème avec l'attribut value in style.<div>Doesn't work: - -</div>
fonctionne très bien pour moi. edit: Eh bien, cela ne semble pas être un espace insécable.Écrivez votre
jsx
code enveloppé{
}
comme indiqué ci-dessous.Vous pouvez mettre un espace ou tout autre caractère spécial ici.
par exemple dans votre cas
devrait être comme ça
Ça va marcher.
Comme conseil, vous ne devriez pas utiliser
 
pour ajouter de l'espace supplémentaire, vous pouvez utiliser css pour y parvenir.la source
text-overflow: "clip";
overflow: "hidden";
. Il existe quelques variantes disponibles.{'\u00A0'}
fonctionne mais est difficile à lire, donc je l'ai enveloppé dans un composant de fonction :composants / nbsp.js:
usage:
la source
Si cela ne fonctionne pas pour vous,
{' '}
utilisez{'\u00A0'}
.{' '}
rendra un espace mais il y a des cas où vous voulez que la hauteur de ligne soit également rendue dans le cas où vous voulez un espace à l'intérieur d'un élément HTML qui n'a pas d'autre texte, c'est-à-dire:,<span style={{ lineHeight: '1em' }}>{' '}</span>
dans ce cas, vous devrez utiliser{'\u00A0'}
à l'intérieur du span ou élément HTML.la source
Essayez d'utiliser utf-8 nbsp, semble un espace simple, mais fonctionne bien sans code supplémentaire.
Vous devriez peut-être créer une variable pour cela.
Pour les symboles de copie: https://unicode-table.com/en/00A0/
Pour générer automatiquement des textes, utilisez un typograf.
la source
Vous pouvez également utiliser des littéraux de modèle ES6, c'est-à-dire
la source