繁体   English   中英

ReactJS是否可以渲染字符串?

[英]ReactJS is it possible to render a string?

我有一个返回字符串的代码,但是由于它处于渲染状态,因此需要附加一个HTML标签,在这种情况下为span。

我想在多个位置(包括占位符和标签)使用此代码,但是跨度,我相信这是不可能的。

这是有问题的代码,不胜感激有关如何修复的一些想法。

let LocalizedString = React.createClass({
 render: function() {

    if (!this.getKey(loadLang, this.props.xlKey)) {
        return <span>{this.props.xlKey + ' untranslated in ' + userLang + ' JSON'}</span>;
    } else {
        return <span>{this.getKey(loadLang, this.props.xlKey)}</span>;
    }
},

getKey: function(obj, str) {
    str = str.replace(/\[(\w+)\]/g, '.$1'); // let's convert indexes to properties
    str = str.replace(/^\./, ''); // gets rid of leading dot

    let a = str.split('.');

    for (let i = 0, n = a.length; i < n; i++) {
        let key = a[i];

        if (key in obj) {
            obj = obj[key];
        } else {
            return null;
        }
    }
    return obj;
},
});

module.exports = LocalizedString;

在另一个调用LocalizedString的文件中,我有这个,但是使占位符返回undefined ...

<TextField alert={alerts.username} onChange={this._onChangeUsername} placeholder={<LocalizedString xlKey='pages.signin.general.username'/>} ref="username" value={this.props.username}/>

最底线是多少,我可以使render仅返回没有任何标签的字符串,还是可以让占位符接受并丢弃span标签吗?

问候。

根据要求,您必须必须使用function而不是React Component

必须绑定React Component的render方法以返回single wrapped markup或本质上返回一个Virtual DOM

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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