Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/21.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 在内部映射值时渲染方法中断_Javascript_Reactjs_Ecmascript 6 - Fatal编程技术网

Javascript 在内部映射值时渲染方法中断

Javascript 在内部映射值时渲染方法中断,javascript,reactjs,ecmascript-6,Javascript,Reactjs,Ecmascript 6,我有一个组件(下拉列表),它应该基于从另一个组件作为“classes”属性传入的数组来填充列表。为了尽可能地提高效率,我尝试使用Object.keys和Array.prototype.map方法在数组中循环、填充列表和渲染。但是,每当我添加这个组件时,它都会导致整个应用程序根本不呈现。我在下面列出了我的渲染方法 渲染方法: export default React.createClass({ change: function(){ console.log(this.pr

我有一个组件(下拉列表),它应该基于从另一个组件作为“classes”属性传入的数组来填充列表。为了尽可能地提高效率,我尝试使用Object.keys和Array.prototype.map方法在数组中循环、填充列表和渲染。但是,每当我添加这个组件时,它都会导致整个应用程序根本不呈现。我在下面列出了我的渲染方法

渲染方法:

export default React.createClass({

    change: function(){
        console.log(this.props.classes);
    },

    render: function(){

        return(
            <div>

             <select onChange = {this.change}>
             {
                Object.keys(this.props.classes).map(value, key =>{

                return <option key = {key}>{value}</option>
                }
             )}
              </select>
            </div>

        )

    }

});
export default React.createClass({
更改:函数(){
log(this.props.classes);
},
render:function(){
返回(
{
Object.keys(this.props.classes).map(value,key=>{
返回{value}
}
)}
)
}
});

回调参数需要额外的括号,我认为:

export default React.createClass({

    change: function(){
        console.log(this.props.classes);
    },

    render: function(){

        return(
            <div>

             <select onChange = {this.change}>
             {
                Object.keys(this.props.classes).map((value, key) =>{

                return <option key = {key}>{value}</option>
                }
             )}
              </select>
            </div>

        )

    }

});
export default React.createClass({
更改:函数(){
log(this.props.classes);
},
render:function(){
返回(
{
Object.keys(this.props.classes).map((值,键)=>{
返回{value}
}
)}
)
}
});

使用ES2015箭头函数时,如果有多个参数,则需要在参数周围加括号,如下所示:

Object.keys(this.props.classes).map((value, key) => {
   return <option key={key}>{value}</option>
 }
Object.keys(this.props.classes).map((值,键)=>{
返回{value}
}

只有当您有一个参数时,才可以省略括号。

您可以发布一个
对象的示例吗?此外,循环对象的键会以随机顺序显示键。谢谢,我不知道有多个参数时会出现这种情况