Я использую тег & nbsp в jsx, и он не отображает пространство. Ниже приводится небольшой фрагмент моего кода. Пожалуйста, помогите.
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 в деталях
Пытаться:
Select Scenario:{'\u00A0'}
Или:
<div dangerouslySetInnerHTML={{__html: 'Select Scenario: '}} />
Или:
<div> </div>
jsfiddle
Обновить
После просмотра некоторых комментариев и опробования. Я обратил внимание на то, что использование HTML Entites внутри JSX работает нормально (в отличие от того, что указано в приведенной выше ссылке на jsx-gotchas [возможно, оно устарело]).
Таким образом, используя что-то вроде:,
R&D
будет выводиться: 'R&D'. Существует странное поведение с
, из-за которого он отображается по-другому, что заставляет меня думать, что это не работает:<div>This works simply:- -</div> <div>This works simply:- {'\u00A0'}-</div>
Производит:
источник
должен работать нормально. Возникла проблема со значением атрибута стиля.<div>Doesn't work: - -</div>
отлично работает для меня. edit: Ну, это не похоже на неразрывное пространство.{'\u00A0'}
работает, но его трудно читать, поэтому я заключил его в функциональный компонент :компоненты / nbsp.js:
export default () => '\u00A0';
Применение:
источник
Напишите свой
jsx
код в оболочке,{
}
как показано ниже.<h1>Code {' '}</h1>
Вы можете поставить здесь пробел или любой специальный символ.
например, в вашем случае
должно быть так
Select Takeout Scenario:{' '}
Это будет работать.
В качестве совета вы не должны использовать
 
для добавления дополнительного места, вы можете использовать CSS для достижения того же.источник
text-overflow: "clip";
overflow: "hidden";
. Доступно несколько вариантов.Если это не работает для вас,
{' '}
используйте{'\u00A0'}
.{' '}
будет отображать пространство, но есть некоторые случаи, когда вы хотите, чтобы высота строки также отображалась в случае, если вам нужно пространство внутри элемента HTML, не имеющего другого текста, то есть:<span style={{ lineHeight: '1em' }}>{' '}</span>
в этом случае вам нужно будет использовать{'\u00A0'}
внутри span или HTML-элемент.источник
Попробуйте использовать utf-8 nbsp, кажется простым пространством, но хорошо работает без лишнего кода.
Возможно, вам стоит создать для этого переменную.
Для копирования символов: https://unicode-table.com/en/00A0/
Для автоматического создания текстов используйте типограф.
источник
Вы также можете использовать литералы шаблонов ES6, т.е.
` <li></li>` or ` ${value}`
источник