Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/91.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript ReactJS是否可以呈现字符串?_Javascript_Html_Reactjs - Fatal编程技术网

Javascript ReactJS是否可以呈现字符串?

Javascript ReactJS是否可以呈现字符串?,javascript,html,reactjs,Javascript,Html,Reactjs,我有一个返回字符串的代码,但由于它在渲染中,所以需要有一个HTML标记,在本例中是span 我想在多个地方使用此代码,包括占位符和标签,但对于span,我认为这是不可能的 这是有问题的代码,希望您能提供一些关于如何修复的想法 let LocalizedString = React.createClass({ render: function() { if (!this.getKey(loadLang, this.props.xlKey)) { return <s

我有一个返回字符串的代码,但由于它在渲染中,所以需要有一个HTML标记,在本例中是span

我想在多个地方使用此代码,包括占位符和标签,但对于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=React.createClass({
render:function(){
if(!this.getKey(loadLang,this.props.xlKey)){
返回{this.props.xlKey+'未在'+userLang+'JSON'中翻译;};
}否则{
返回{this.getKey(loadLang,this.props.xlKey)};
}
},
getKey:函数(obj、str){
str=str.replace(/\[(\w+)\]/g,.$1');//让我们将索引转换为属性
str=str.replace(/^\./,“”);//去掉前导点
设a=str.split('.');
for(设i=0,n=a.length;i
在另一个调用LocalizedString的文件中,我有这个,但使占位符返回未定义

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

底线是,我可以让渲染返回一个没有任何标记的字符串,或者让占位符接受并丢弃span标记吗


关于。

根据要求,您必须使用
功能
而不是
反应组件


React组件的
render
方法必须绑定为返回
单包装标记
或本质上是一个
虚拟DOM

AFAIK no。但是为什么
LocalizedString
必须是React组件呢?工作人员要求我重做我的原始代码,这只是对组件的函数调用,以便更好地访问。。。因为键入getKey('keyname')太多了,我想。。。