Javascript &引用;这是未定义的;嵌套返回语句中的

Javascript &引用;这是未定义的;嵌套返回语句中的,javascript,reactjs,Javascript,Reactjs,我试图将一些道具mapObject={this.props.mapObject}详细信息={this.props.parsedData.categories[key]传递给另一个组件Item,但我得到了TypeError:这是未定义的 道具传递正确,因为我可以在调用mapObject的第一行访问道具。只有在嵌套的返回中才能访问道具。我的代码如下 class List extends React.Component { constructor(props) { super(

我试图将一些道具
mapObject={this.props.mapObject}详细信息={this.props.parsedData.categories[key]
传递给另一个组件
Item
,但我得到了
TypeError:这是未定义的

道具传递正确,因为我可以在调用
mapObject
的第一行访问道具。只有在嵌套的
返回中才能访问道具。我的代码如下

class List extends React.Component {
    constructor(props) {
        super(props);
    }

    render() {
        return (
            this.props.mapObject(this.props.parsedData.categories, function (key, value) {
                return (
                    <div id="dropdown">
                        <div id="category-cirle"><center>{key[0].toUpperCase() + key[1]}</center></div>
                        <div id="dropdown-content">
                            <Item key={key} mapObject={this.props.mapObject} details={this.props.parsedData.categories[key]} />
                        </div>
                    </div>
                );
            })
        );
    }
}
类列表扩展了React.Component{
建造师(道具){
超级(道具);
}
render(){
返回(
this.props.mapObject(this.props.parsedData.categories,函数(键,值){
返回(
{key[0].toUpperCase()+key[1]}
);
})
);
}
}

如何将道具传递到

您正在使用
函数
作为
mapObjects
的第二个参数,因此函数中的
不是指您的组件类。请尝试改用箭头语法,它将保留
的上下文:

this.props.mapObjects(this.props.parsedData.categories,(key,value)=>{
返回。。。
});

您可以使用胖箭头函数(它会自动绑定此函数)。与其使用
,不如使用函数(键,值)
尝试使用
,(键,值)=>
在javascript中有点特殊。以下链接有助于我更好地理解javascript: