jsx not working

前端 未结 6 1870
無奈伤痛
無奈伤痛 2020-12-13 03:02

I am using the   tag in jsx and it is not rendering the space. The following is a small snippet of my code.Please help.

var Reporting=React.createCla         


        
相关标签:
6条回答
  • 2020-12-13 03:37

    You can also use ES6 template literals i.e.,

    `   <li></li>` or `  ${value}`
    
    0 讨论(0)
  • 2020-12-13 03:38

    Write your jsx code wrapped in { } as shown below.

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

    You can put space or any special character here.

    e.g in your case

    Select Takeout Scenario:&nbsp;
    

    should be like this

    Select Takeout Scenario:{' '}
    

    It will work.

    As Advice you should not use &nbsp to add extra space, you can use css to achieve same.

    0 讨论(0)
  • 2020-12-13 03:40

    If this doesn't work for you {' '} then use {'\u00A0'}.

    {' '} will render a space but there are some cases when you want the line height to also be rendered in a case there you want a space inside an HTML element that has no other text ie: <span style={{ lineHeight: '1em' }}>{' '}</span>, in that case you'll need to use {'\u00A0'} inside the span or HTML element.

    0 讨论(0)
  • 2020-12-13 03:44

    {'\u00A0'} works but is hard to read, so I wrapped it in a function component:

    components/nbsp.js:

    export default () => '\u00A0';
    

    usage:

    Hello<Nbsp />world
    
    
    0 讨论(0)
  • 2020-12-13 03:47

    See: JSX In Depth

    Try: Select Scenario:{'\u00A0'}

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

    Or: <div>&nbsp;</div>

    jsfiddle

    Update

    After seeing some of the comments, and trying it out. It has come to my attention that using html entites inside JSX works fine (unlike what is stated in the above jsx-gotchas reference [maybe it's outdated]).

    So using something like: R&amp;D, would output: 'R&D'. There is a weird behavior with &nbsp;, which causes it to render differently, thus causing me to think it doesn't work:

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

    Produces:

    This works simply:- -
    This works simply:-  -
    
    0 讨论(0)
  • 2020-12-13 03:47

    Try to use utf-8 nbsp, seem as simple space, but working good without extra code.

    Maybe, you should create variable for this.

    For copy symbols: https://unicode-table.com/en/00A0/

    For generate texts automatically, use some typograf.

    0 讨论(0)
提交回复
热议问题