3 回答
TA贡献1830条经验 获得超3个赞
this.props.array.map is not a function当您尝试映射不是数组的东西时发生
axios.get('/api/users')
.then(results =>{
this.setState({
users: results.data
});
})
确保results.data是数组
TA贡献1851条经验 获得超3个赞
由于您的状态中有多个值,因此在这种情况下您不希望覆盖其他值chosenUser:undefined。这就是为什么您需要在设置users.
您的初始状态为空Array,但Axios返回一个JSON对象,这意味着您将用户的值设置为对象。
您的代码应如下所示。
componentDidMount(){
axios.get('/api/users')
.then(results =>{
this.setState({...this.state, users: [...this.state.users, results.data]
});
})
.catch(err => {
console.log(err);
});
}
您可以使用您的map()函数循环遍历每个项目。
TA贡献1839条经验 获得超15个赞
map()
方法仅适用于数组,我认为您调用的 api 的结果不会返回数组。所以,this.props.users
不会是一个数组,它会抛出那个错误。
我建议检查您调用的 api (/api/users) 并查看结果。它应该是一个数组
添加回答
举报