【发布时间】:2018-02-05 10:40:05
【问题描述】:
我有一个在子组件的forEach 循环中运行的函数,该函数必须过滤数据并使用结果更新状态。
问题是,当我使用一个循环迭代函数时,它会同时运行并且在此范围内,状态将无法正确更新数据。
问题是如何更好地实现它,可能有一种方法可以使用 Promise 或 async /await 或者更简单的方法可以实现。根据需要放入队列并等待状态更新。
这里有简化代码
子组件
this.props.data.forEach((item, i) => {
this.props.update(item);
});
组件父级
function update(data) {
let filtered = this.state.data.filter(item => item.uid !== data.uid);
this.setState({data: filtered});
}
【问题讨论】:
-
你能解释一下你想用这种行为实现什么吗?为什么不在运行循环后更新状态?
-
@DanielAndrei 抱歉,已经更新了示例,所以应该使用过滤变量更新状态。
标签: javascript reactjs loops promise async-await