简体   繁体   English

如何在 React.js 中观看 object state

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM