将调用放入队列并等待更新 React.js 中的状态

Con*_*lub 5 javascript loops promise async-await reactjs

我有一个forEach在子组件的循环中运行的函数,该函数必须过滤数据并用结果更新状态。问题是,当我使用循环迭代该函数时,该函数同时运行并且在此期间,状态将无法使用数据正确更新。问题是如何更好地实现它,可能有一种方法可以使用 Promise 或 async /await 或者更简单的方法来实现。根据需要放入队列并等待状态更新。

简化的代码在这里是
组件子组件

this.props.data.forEach((item, i) => {
    this.props.update(item);
});
Run Code Online (Sandbox Code Playgroud)

组件父组件

function update(data) {
    let filtered = this.state.data.filter(item => item.uid !== data.uid);
    this.setState({data: filtered});
}
Run Code Online (Sandbox Code Playgroud)

Mar*_*vic 2

如果我理解得很好,你需要这样的东西:

update = () => {
    let filtered = this.state.data.filter(x => this.props.data.every(y => x.uid !== y.uid))
    this.setState({
        data: filtered
    })
}
Run Code Online (Sandbox Code Playgroud)