如何使用基于条件的映射函数循环数组,然后设置状态?



我想使用map函数拥有相同的功能。以下是我的代码:

async componentDidMount() {
const data = await TodoAPI.getTodo();
for(var i=0;i<data.response.length;i++)
{
if(data.response[i]._id === this.props.match.params.id)
{
this.setState({
todo_description: data.response[i].todo_description,
todo_responsible: data.response[i].todo_responsible,
todo_priority: data.response[i].todo_priority,
todo_completed: data.response[i].todo_completed
})
}
}
}

我想你有点困惑,因为在这种情况下map()没有用。它创建了一个新数组,但您想要的(如果我错了,请纠正我(是找到该项目,所以find()似乎是您需要的:

async componentDidMount() {
const data = await TodoAPI.getTodo();
const id = this.props.match.params.id;
const item = data.response.find(item => item._id === id);
this.setState(item);
}

最新更新