我有这段代码,我的问题是为什么在我的答案函数中我得到了初始状态。如何以正确的方式设置状态,以便在setTimeout函数的回调中获得正确的状态?
const App = () => {
const [state, setState] = useState({
name: "",
password: "",
});
useEffect(() => {
setState({ ...state, password: "hello" });
setTimeout(answer, 1000);
}, []);
const answer = () => {
console.log(state);
// we get initial State
};
return <div className="App"></div>;
};
stateRef
对象不是您组件的状态,但当您想要更新state
时,您需要更新stateRef
。 - YousafstateRef
和state
,并且只需在需要更新状态时调用该函数。 - Yousaf