我有一个更新状态对象并将其添加到数组列表的函数。 问题是状态值可以从用户输入中更改,并将旧值添加到列表中,但是如果我第二次单击它,它有足够的时间来更新状态,则添加正确的值。
我认为状态更新需要先执行,然后再将其添加到列表中。该怎么办?解决此问题的最佳做法是什么?
我的功能
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>
)
答案 0 :(得分:1)
尝试根据meshObjectValues
使用useEffect
更新状态
const addObjectStateToList = () => props.updateMeshState();
useEffect(() => {
setCart(currentState => [...currentState, props.meshObjectValues]);
}, [props.meshObjectValues]);