我对React hooks很新,不确定如何实现以下目标。假设我有state1
和state2
,我使用 useEffect
hook 调用 asyncFn1
并更新 state1
。
现在我想等待state1
改变,使用state1
值调用 asyncFn2
,并更新state1
和state2
。这个asnycFn1
和asyncFn2
应该只被调用一次。
如果我只是使用另一个useEffect
来调用asyncFn2
,我将无法获取state1
的值。我该如何解决?
const [state1, setState1] = useState(null);
const [state2, setState2] = useState(null);
const asyncFn1 = async() => {
// async call to get state 1 data
// setState1
}
const asyncFn2 = async(_state1) => {
// use state1 data to make async call to get state 2 data
// state2 data will be used to update both state1 and state2
}
useEffect(() => {
asyncFn1();
}, [])
asyncFn2
更新state1
?asyncFn2
的输入_state1
是否与你想要调用setState1
的状态不同? - Patrick Roberts