ReactJs返回原始数据

时间:2019-06-20 03:36:45

标签: reactjs jsx

我正在使用React渲染一些组件。代码如下:

render() {
        return (
            <div className='sources row-fluid top-logo-boxes'>
                <div className='sourceWrapper col-xs-4'>
                    <div className='source'>
                        <div className='logo-img'>
                            <a href='#'>
                                <div className={this.state.type+'-logo-'+this.state.themeType+' m-0-auto'}></div>
                            </a>
                        </div>
                        <div className='details'>
                            <div className='rating-star'>
                                <span className='image-responsive stars color'><span className={'m-0-auto rating-star-'+this.state.type}></span></span>
                            </div>
                            <div className='numb-reviews'>
                                <span>{this.state.numberReviews} </span>
                                <img className='icon-person' src='../assets/img/icon-person-dark.png' alt=''/>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        )
    }

通常,浏览器将返回html,...但是我想在浏览器中显示原始数据(它在编辑器中应该是相同的,确切地说,我想在编辑器中向浏览器显示原始代码),如下所示:< / p>

<div className='sources row-fluid top-logo-boxes'>
                <div className='sourceWrapper col-xs-4'>
                    <div className='source'>
                        <div className='logo-img'>
                            <a href='#'>
                                <div className={this.state.type+'-logo-'+this.state.themeType+' m-0-auto'}></div>
                            </a>
                        </div>
                        <div className='details'>
                            <div className='rating-star'>
                                <span className='image-responsive stars color'><span className={'m-0-auto rating-star-'+this.state.type}></span></span>
                            </div>
                            <div className='numb-reviews'>
                                <span>{this.state.numberReviews} </span>
                                <img className='icon-person' src='../assets/img/icon-person-dark.png' alt=''/>
                            </div>
                        </div>
                    </div>
                </div>
            </div>

我搜索了很多次,但是找不到答案。有人请帮助我。非常感谢。

1 个答案:

答案 0 :(得分:0)

我不太确定我是否会遇到这个问题,但是查看您的代码,我认为答案是肯定的。

此:

<div className={this.state.type+'-logo-'+this.state.themeType+' m-0-auto'}>

可以通过使用javascript模板文字来实现。

资源:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals)。

该语法使用反引号将javascript变量和固定字符串文本的任何组合括起来,如下所示:

<div className={`${this.state.type}-logo-${this.state.themeType}m-0-auto`}>

可能需要一点时间来适应的部分是,变量被${}包围。有时可能会使阅读起来有些困难,但可以进行各种动态样式。

下一级别的可能性来自能够在模板字符串的表达式内执行任何逻辑。您可以执行以下操作:

<div className={`${this.state.type === 'dark' ? 'dark-theme' : 'default-theme'}-logo-${this.state.themeType}m-0-auto`}>

根据数据动态输出所需的内容。