3 回答

TA贡献1796条经验 获得超7个赞
你需要在构造函数中初始化 todos
constructor(){
super();
this.state ={key: 0, title: '', todos: []};
}
因为最初在调用 render 方法时,API 仍在进行中,当时todos是未定义的。
因此,当您尝试.map在未定义的情况下运行 a 时,它会崩溃。

TA贡献1998条经验 获得超6个赞
我认为你混合了 state 和 todos 数组。在构造函数中初始化状态如下:
constructor(){
super();
this.state ={ todos: [key: 0, title: '']};
}
在渲染函数中:
render() {
return (
<div className="App">
<h1>todos</h1>
{this.state.todos.map(todo =>
<div key = {todo.key} > title: {todo.title} </div>
)}
</div>
);
}

TA贡献1863条经验 获得超2个赞
您todos将在初始运行render前未定义componentDidMount,因此您必须todos像这样使用空数组初始化
constructor(){
super();
this.state ={key: 0, title: '', todos: []};
}
添加回答
举报