在我的應(yīng)用程序中,我通過 修改狀態(tài)useState(),例如:const [question, setQuestion] = useState('')const updateQuestionHandler = () => { let honestQuestion = 'is this a race condition?' setQuestion(honestQuestion) console.log(question) // Returns => '' or the previous state, why isn't the updated state returned instead?}return ( <div> <p> { question } </p> // This is generally updated correctly, after the button click below <button onClick={() => updateQuestionHandler()}> Click to update question </button> </div> )上面發(fā)生的事情是,一旦我用 更新狀態(tài)setQuestion(variable),狀態(tài)就會(huì)更新(最終)。如何確保設(shè)置后狀態(tài)已經(jīng)更新并且可以安全參考?您可以看到我在哪里嘗試console.log()更新狀態(tài),設(shè)置后立即返回之前或舊的狀態(tài)。我可以相反console.log(honestQuestion),這是正確的做法嗎?我覺得我應(yīng)該使用狀態(tài)作為唯一的事實(shí)來(lái)源。
React - 僅在狀態(tài)更改后執(zhí)行某些操作(掛鉤)
紅顏莎娜
2023-09-21 17:20:52