我有一个函数可以更新状态对象并将其添加到数组列表中。 问题是,状态值可以通过用户输入进行更改,并将旧值添加到列表中,但如果我第二次单击它,它有足够的时间来更新状态,添加正确的值。
我认为在将其添加到列表之前需要执行状态更新。如何做到这一点?解决此问题的最佳实践是什么?
我的功能
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/