如何解决react类组件状态数据在render函数下的map函数下不可用
我有一个课堂组件。在该组件上,我有一个名为 tasks_array 的状态项。
import React,{ Component } from 'react'
import './App.css';
import Task from './component/task'
class App extends Component {
constructor(props) {
super(props);
this.state = {
tasks_array: [
{id: 1,name: 'item 1'},{id: 1,]
};
}
render() {
return (
<div>
{this.state.tasks_array.map(function (item,index) {
return (
<Task
key={index}
myItem={item}
otherItems={this.state.tasks_array}
/>
);
})}
</div>
)
}
}
export default App
错误弹出:TypeError:无法读取未定义的属性“ state”
因此问题出在以下行:otherItems={this.state.tasks_array}
中,其中 this 是 undefined 。
任何人都可以帮助我理解此问题的原因吗?
以及如何解决此问题以将整个 tasks_array 发送为 Task 组件的属性
解决方法
"this" is undefined inside map function Reactjs
Array.prototype.map()使用第二个参数来设置其在映射函数中的引用,因此将其作为第二个参数传递以保留当前上下文:
someList.map(function(item) {
...
},this)
或者,您可以使用ES6箭头功能自动保留当前的此上下文:
someList.map((item) => {
...
})
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。