[英]how to watch object state in React.js
Here is my app code:这是我的应用程序代码:
const [myState, setMyState] = useState(() => {
return {
flag1: false,
flag2: false
}
})
useEffect(() => {
console.log(myState)
}, [myState])
setMyState({ ...myState, flag1: true })
Last row triggers useEffect() but console output shows old state:最后一行触发 useEffect() 但控制台 output 显示旧的 state:
{flag1: false, flag2: false}
What am I doing wrong?我究竟做错了什么? I want to watch when all flag fields and once these are true - then I'll execute some code in useEffect.
我想观察所有标志字段何时为真,一旦这些为真 - 然后我将在 useEffect 中执行一些代码。 What would be best approach to do it?
最好的方法是什么?
You dont need a function in useState.您不需要在 useState 中使用 function。
Use prevState in setMyState, this way you will get the current state values在 setMyState 中使用 prevState,这样你会得到当前的 state 值
const [myState, setMyState] = useState( {
flag1: false,
flag2: false
});
useEffect(() => {
console.log(myState)
}, [myState])
setMyState(prevState=>({ ...prevState, flag1: true }));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.