&와 같은 문자를 포함 할 수있는 문자열이있는 소품이 있습니다. 공백도 포함됩니다. 모든 공백을 .
쉽게 할 수있는 방법이 있습니까? 이 구문을 사용하여 렌더링 할 수는 없습니다.
<div dangerouslySetInnerHTML={{__html: myValue}} />
먼저 HTML 엔티티를 마크 업으로 바꿔야하기 때문입니다. 나는 이것을하고 싶지 않다. 너무 낮은 수준 인 것 같다.
내가 할 수있는 방법이 있습니까?
&와 같은 문자를 포함 할 수있는 문자열이있는 소품이 있습니다. 공백도 포함됩니다. 모든 공백을 .
쉽게 할 수있는 방법이 있습니까? 이 구문을 사용하여 렌더링 할 수는 없습니다.
<div dangerouslySetInnerHTML={{__html: myValue}} />
먼저 HTML 엔티티를 마크 업으로 바꿔야하기 때문입니다. 나는 이것을하고 싶지 않다. 너무 낮은 수준 인 것 같다.
내가 할 수있는 방법이 있습니까?
 l;당신은 말 그대로 표시 HTML 태그를 원하거나 뭔가 당신이 원하는 다른 것입니다합니까?
myValue 액세스 할 수 있는지에 따라 다릅니다 . 적절한 수명주기 함수에서 기다렸다가 구문 분석하고 parsed다중 구문 분석을 방지 하는 플래그를 설정할 수 있습니다.
dangerouslySetInnerHTML메서드 를 사용해야합니다 . javascript를 사용하여 공백을 & nbsp;로 대체하는 문자열을 만들 수 있기 때문에 그 문제를 해결할 방법을 찾지 못했습니다. 그러나 dangerouslySetInnerHTML메소드 를 사용하지 않으면 반응에 의해 이스케이프됩니다.
답변:
HTML 엔티티 를 사용하는 대신 (U + 00A0 NON-BREAKING SPACE) 를 참조 하는 유니 코드 문자를 사용할 수 있습니다 .
<div>{myValue.replace(/ /g, "\u00a0")}</div>
나는 이것이 오래된 질문이라는 것을 알고 있으며 이것은 당신이 요청한 것을 정확히 수행하지는 않지만 문자열을 편집하는 대신 CSS white-space: nowrap속성을 사용하여 달성하려는 것이 더 잘 해결 될 수 있습니다 .
HTML에서 :
<div style="white-space: nowrap">This won't break lines</div>
반응 :
<div style={{ whiteSpace: 'nowrap' }}>{myValue}</div>
사라지지 않고 여기에 입력하기가 매우 어렵 기 때문에 모든 사람이 볼 수 있도록 약간의 공백을 추가합니다. 이 태그 <nbsp />에서 공백을 제거하면 React에서 끊기지 않는 공백을 사용할 수 있습니다.
React는이 JSX 태그를 비 분리 공백으로 변환합니다. 특이한 점 : 간격을 두려는 텍스트와 같은 줄에 사용해야합니다. 또한이 태그가있는 비 분리 공백은 React에 쌓이지 않습니다.
Warning: The tag <nbsp> is unrecognized in this browser. If you meant to render a React component, start its name with an uppercase letter
따라서이 "Hello world"와 같은 값이 있고 this.props.value.
다음과 같이 할 수 있습니다.
var parts = this.props.value.split(" "), array = [];
for (var i=0; i<parts.length; i++){
// add the string
array.push(<span key={i * 2}>{parts[i]}</span>);
// add the nbsp
array.push(<span key={i * 2 + 1}> </span>);
}
// remove the trailing nbsp
array.pop();
return <div>{array}</div>;