简体   繁体   中英

How to show html entity using React?

I am wanting to show the 'cubic' html entity (superscript 3). I am doing like this:

const formatArea = function(val){
    return val + " ft³";
}

where formatArea is being called from inside the component':

render(){
    return (
        <div>
            {formatArea(this.props.area)}
        </div>
    );
}

but, the browser is showing it as ft&sup3;

Another option is to use fromCharCode method:

const formatArea = (val) => {
    return val + ' ft' + String.fromCharCode(179);
}

Found this way using JSX:

const formatArea = (val) => {
    return (<span>{val}&nbsp;ft<sup>3</sup></span>);
}

New way using React's fragments : <>&sup3;</> .

In your case it can be:

const formatArea = function(val){
    return <>{val + ' '}&sup3;</>
}
  • Method 1

    const formatArea = val => <div>{val} ft{'³'}</div>

  • Method 2

    const formatArea = val => <div>{val} ft{'\³'}</div>

  • Method 3: fromCharCode

    const formatArea = val => <div>{val} ft{String.fromCharCode(parseInt('B3', 16))}</div>

  • Method 4

    const formatArea = val => <div>{val} ft{String.fromCharCode(179)}</div>

  • Method 5: HTML Codes

    const formatArea = val => <div>{val} ft&sup3;</div>

  • Method 6

    const formatArea = val => <div>{val} ft&#179;</div>

  • Method 7

    const formatArea = val => <div>{val} ft<sup>3</sup></div>

Then you can render it:

render() {
  return (
    {formatArea(this.props.area)}
  )
}

You can get that using dangerouslySetInnerHTML feature of jsx.

Another way would be use correspond unicode character of html entity and just use as normal string.

 const formatArea = function(val){ return val + " ft&sup3;"; } const Comp = ({text}) => ( <div> <div dangerouslySetInnerHTML={{__html: `${text}`}} /> <div>{'53 ft\³'}</div> </div> ); ReactDOM.render( <Comp text={formatArea(53)} /> , document.getElementById('root') );
 <script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script> <div id="root"></div>

const formatArea = function(val){
  return <>{val} ft<span>&sup3;</span></>;
}

render(){
    return (
        <div>
            {formatArea(this.props.area)}
        </div>
    );
}

Demo

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM