javascript - 在将其添加到列表之前更新状态

标签 javascript reactjs

我有一个函数可以更新状态对象并将其添加到数组列表中。 问题是,状态值可以通过用户输入进行更改,并将旧值添加到列表中,但如果我第二次单击它,它有足够的时间来更新状态,添加正确的值。

我认为在将其添加到列表之前需要执行状态更新。如何做到这一点?解决此问题的最佳实践是什么?

我的功能

    const addObjectStateToList = () => {
        props.updateMeshState(); //Updating state
        setCart(currentState => [...currentState, props.meshObjectValues]); //Adding state to list
    }

函数使用

        return (
          <div>
            <button onClick={addObjectStateToList }>Add To Cart</button>
          </div>
    )

最佳答案

尝试使用useEffect用于根据 meshObjectValues

更新状态
const addObjectStateToList = () => props.updateMeshState();

useEffect(() => {
  setCart(currentState => [...currentState, props.meshObjectValues]);
}, [props.meshObjectValues]);

关于javascript - 在将其添加到列表之前更新状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58135021/

相关文章:

Javascript:如何从网络应用程序使用 Google API 访问*特定用户*数据?

javascript - 当可排序被丢弃时会发出警报

javascript - 将全局函数包装在 (function($){ }(jQuery) 中

javascript - 在复杂的 React 应用程序中正确使用 Redux 存储

node.js - 在 aws elasticbeanstalk 上配置 React-create-app 的生产环境

javascript - 我可以将 react-native-i18n 库与 react-native-web-boilerplate 一起使用吗

javascript - 从 child 的 child 那里获取值(value)

javascript - php, html, 在写完第一个词后将 select 更改为 selective 等等

javascript - 下载错误或资源不是有效图像

reactjs - 如何为 Material UI 图标应用白色?