Używam tagu & nbsp w jsx i nie renderuje spacji. Poniżej znajduje się mały fragment mojego kodu, proszę o pomoc.
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>
);
},
});
Odpowiedzi:
Zobacz: JSX w głębi
Próbować:
Select Scenario:{'\u00A0'}
Lub:
<div dangerouslySetInnerHTML={{__html: 'Select Scenario: '}} />
Lub:
<div> </div>
jsfiddle
Aktualizacja
Po obejrzeniu niektórych komentarzy i wypróbowaniu tego. Zwróciło moją uwagę, że używanie html entites wewnątrz JSX działa dobrze (w przeciwieństwie do tego, co jest napisane w powyższym dokumencie jsx-gotchas [może jest nieaktualne]).
Więc użycie czegoś takiego jak:,
R&D
spowoduje wyświetlenie: „R&D”. Występuje dziwne zachowanie
, które powoduje, że renderuje się inaczej, przez co myślę, że nie działa:<div>This works simply:- -</div> <div>This works simply:- {'\u00A0'}-</div>
Produkuje:
źródło
powinno działać dobrze. Wystąpił problem z wartością atrybutu style.<div>Doesn't work: - -</div>
dla mnie działa dobrze. edycja: Cóż, nie wydaje się, aby była to niezłamująca przestrzeń.{'\u00A0'}
działa, ale jest trudny do odczytania, więc opakowałem go w komponent funkcyjny :komponenty / nbsp.js:
export default () => '\u00A0';
stosowanie:
źródło
Napisz swój
jsx
kod opakowany,{
}
jak pokazano poniżej.<h1>Code {' '}</h1>
Możesz tu wstawić spację lub dowolny znak specjalny.
np. w twoim przypadku
tak powinno być
Select Takeout Scenario:{' '}
To będzie działać.
Jako rada, której nie powinieneś używać
 
do dodawania dodatkowej przestrzeni, możesz użyć CSS, aby osiągnąć to samo.źródło
text-overflow: "clip";
overflow: "hidden";
. Dostępnych jest kilka odmian.Jeśli to nie zadziała,
{' '}
użyj{'\u00A0'}
.{' '}
wyrenderuje spację, ale są przypadki, w których chcesz, aby wysokość linii była również renderowana w przypadku, gdy potrzebujesz spacji wewnątrz elementu HTML, który nie ma innego tekstu, np .:<span style={{ lineHeight: '1em' }}>{' '}</span>
w takim przypadku będziesz musiał użyć{'\u00A0'}
wewnątrz span lub element HTML.źródło
Spróbuj użyć utf-8 nbsp, wydaje się być prostą spacją, ale działa dobrze bez dodatkowego kodu.
Może powinieneś stworzyć do tego zmienną.
Kopiowanie symboli: https://unicode-table.com/en/00A0/
Aby automatycznie generować teksty, użyj typografu.
źródło
Możesz także użyć literałów szablonów ES6, np.
` <li></li>` or ` ${value}`
źródło