Jsxで&nbspタグを使用していますが、スペースをレンダリングしていません。以下は私のコードの小さな断片です。助けてください。
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>
);
},
});
参照: JSX In Depth
試してください:Select Scenario:{'\u00A0'}
または:<div dangerouslySetInnerHTML={{__html: 'Select Scenario: '}} />
または:<div> </div>
コメントをいくつか見て、試してみました。 JSX内でhtml entiteを使用すると問題なく動作することに気付きました(上記のjsx-gotchasのリファレンスに記載されているものとは異なります[古い場合があります])。
したがって、R&D
のようなものを使用すると、 'R&D'が出力されます。
には奇妙な振る舞いがあり、それによりレンダリングが異なるため、動作しないと思うようになります。
<div>This works simply:- -</div>
<div>This works simply:- {'\u00A0'}-</div>
生産物:
This works simply:- -
This works simply:- -
以下に示すように、{
}
でラップされたjsx
コードを記述します。
<h1>Code {' '}</h1>
ここにスペースまたは特殊文字を配置できます。
例:あなたの場合
Select Takeout Scenario:
こうなるはず
Select Takeout Scenario:{' '}
それが動作します。
アドバイスとして、 
を使用して余分なスペースを追加しないでください。cssを使用して同じスペースを実現できます。
{'\u00A0'}
は機能しますが、読みにくいため、 function component でラップしました。
components/nbsp.js:
export default () => '\u00A0';
使用法:
Hello<Nbsp />world
これがうまくいかない場合は、{' '}
を使用し、{'\u00A0'}
を使用します。
{' '}
はスペースをレンダリングしますが、他のテキストを持たないHTML要素内にスペースが必要な場合に行の高さもレンダリングしたい場合があります。例:<span style={{ lineHeight: '1em' }}>{' '}</span>
、inその場合、spanまたはHTML要素内で{'\u00A0'}
を使用する必要があります。
ES6テンプレートリテラルを使用することもできます。つまり、
` <li></li>` or ` ${value}`