javascript - 嵌套返回语句中的“这是未定义的”
问题描述
我正在尝试将一些道具mapObject={this.props.mapObject} details={this.props.parsedData.categories[key]
传递给另一个组件Item
,但我得到了TypeError: this is undefined
道具被正确传递,因为我可以在我调用的第一行访问它们mapObject
。只有在嵌套return
中我似乎无法访问它们。我的代码如下。
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>
);
})
);
}
}
我如何将道具传递给Item
?
解决方案
您使用 afunction
作为 的第二个参数mapObjects
,因此this
在函数中不是指您的组件类。尝试改用箭头语法,这将保留以下内容this
:
this.props.mapObjects(this.props.parsedData.categories, (key, value) => {
return ...
});
推荐阅读
- c++ - 如何在循环中动态创建类对象?
- azure - Azure 存储。得到 403 [url](未启用 CORS 或未找到此请求的匹配规则。)
- eclipse - Eclipse Egit 不更新 Switch 上的源代码
- r - 如何从今天减去 n 个工作日以获得用户提示的过去日期?
- xamarin.forms - 从另一个基于应用程序的类继承 UWP 应用程序类时,名称空间“...”中不存在名称“AppClass”
- sql - 维度表到维度表允许星型方案外键?
- jquery - 如何使用 jQuery 填充引导多选
- jquery - 用jQuery替换字符串
- algorithm - 在 perl 中找到下一个更高数字的最佳算法
- javascript - 如何使用 JavaScript 检测日期是否过去?