& nbsp jsx가 작동하지 않음


101

jsx에서 & nbsp 태그를 사용하고 있으며 공간을 렌더링하지 않습니다. 다음은 내 코드의 작은 스 니펫입니다.

var Reporting=React.createClass({

  render: function(){
    return(
      <div style={divPositionReporting}>
          <p>Pricing Reports</p>
          <hr></hr>
          Select Scenario:&nbsp;&nbsp;
          <select>
            <option></option>
          </select>
          <button type="button">Get Pricing Report</button>
          <br/>
          Select Takeout Scenario:&nbsp;
          <select>
            <option></option>
          </select>
          <button type="button">Get Pricing Report</button>
          <br/>
      </div>
    );
  },

});

검색 했습니까? 먼저 공격 : google.com/search?q=react+html+entities
펠릭스 클링

귀하의 코드에 문제가 없다고 생각합니다. 어떤 Babel 및 React 버전을 사용하고 있습니까? 최신 버전을 사용하십시오. 생성 된 코드에 구분되지 않는 공백 문자가 포함되어 있음을 Babel repl 에서 확인할 수 있습니다 .
Felix Kling

자 이제 첫 번째 히트작은 이것입니다. :) duckduckgo.com/?q=jsx+nbsp
Marc Stober

답변:


209

참조 : JSX In Depth

시험: Select Scenario:{'\u00A0'}

또는: <div dangerouslySetInnerHTML={{__html: 'Select Scenario: &nbsp;'}} />

또는: <div>&nbsp;</div>

jsfiddle

최신 정보

댓글 중 일부를 확인하고 시도한 후. JSX 내부에서 html entites를 사용하는 것이 잘 작동한다는 사실에 주목했습니다 (위의 jsx-gotchas 참조 [아마도 구식 임]에 명시된 것과는 달리).

따라서 다음과 같이 사용하면 R&amp;D'R & D'가 출력됩니다. 에 이상한 동작 &nbsp;이있어 다르게 렌더링되어 작동하지 않는다고 생각하게됩니다.

<div>This works simply:-&nbsp;-</div>
<div>This works simply:- {'\u00A0'}-</div>

생성 :

This works simply:- -
This works simply:-  -

8
따라서 대답은 html 엔터티에 해당하는 유니 코드 값을 사용하고 javascript 문자열 내부에서 사용하는 것입니다. 당신의 도움을 주셔서 감사합니다.
Indraneel Bende

@IndraneelBende &nbsp;가 잘 작동합니다. 스타일 속성의 값에 문제가 있습니다.
Gaurav Kumar

@Gaurav Kumar, 나는 또한 작동하지 않았다고 시도했지만 무시되었습니다. 내 대답에 바이올린에 추가해 주시겠습니까?
omerts

1
<div>Doesn't work: -&nbsp;-</div>나를 위해 잘 작동합니다. 편집 : 글쎄, 그것은 깨지지 않는 공간으로 보이지 않습니다.
Felix Kling

MMH는 ...하지만 웹 사이트 자체 반응에 예상되는 출력을 생성
펠릭스 클링에게


17

아래와 같이 jsx코드를 래핑 하여 작성하십시오 { }.

<h1>Code {' '}</h1>

여기에 공백이나 특수 문자를 넣을 수 있습니다.

예 : 귀하의 경우

Select Takeout Scenario:&nbsp;

이럴거야

Select Takeout Scenario:{' '}

작동합니다.

조언으로 &nbsp추가 공간을 추가 하는 데 사용해서는 안되며 CSS 를 사용 하여 동일한 결과를 얻을 수 있습니다 .


2
이 공백을 추가하는 단지이지만, 의지는 다른 HTML 엔티티하지 작업
omerts

5
그건 아닌 비 분리 공간하지만.
TimoSolo

1
@TimoSolo & nbsp 또는 위에서 언급 한 기술을 사용하는 것을 권장하지 않습니다. 내 것이 작동하지 않으면 첫 번째 대답을 시도 할 수 있습니다. 감사.
WitVault

"동일을 달성하기 위해 CSS 사용"-텍스트가 다음 줄로 떨어지지 않고 텍스트를 포함하는 요소의 경계 외부로 떨어지지 않도록 공백을 사용하지 않을 수 있습니다. 대신 CSS 속성을 사용하여이 작업을 수행하려는 경우이를 수행하는 한 가지 방법은 text-overflow: "clip"; overflow: "hidden";. 사용 가능한 몇 가지 변형이 있습니다.
Dan Cron

4

이 당신을 위해 작동하지 않는 경우 {' '}다음 사용합니다 {'\u00A0'}.

{' '}공백을 렌더링하지만 다른 텍스트가없는 HTML 요소 내부에 공백이 필요한 경우에도 행 높이를 렌더링하려는 경우가 있습니다. 즉 <span style={{ lineHeight: '1em' }}>{' '}</span>,이 경우 {'\u00A0'}내부에서 사용해야 합니다. 스팬 또는 HTML 요소.


1

utf-8 nbsp를 사용하십시오. 단순한 공간처럼 보이지만 추가 코드없이 잘 작동합니다.

아마도 이것에 대한 변수를 만들어야 할 것입니다.

복사 기호 : https://unicode-table.com/en/00A0/

텍스트를 자동으로 생성하려면 일부 typograf를 사용하십시오.


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.