【发布时间】:2020-02-02 12:20:36
【问题描述】:
我想要做的是订阅一个调度,然后调度到另一个状态。我试过 useEffect 但它给了我无限循环和一些谷歌搜索说不更新 useEffect 的状态所以现在我的代码看起来像这样,但它没有按预期工作。
const Chain = () => {
const [fooState, fooDispatch] = fooOne() // useReducer
const [barState, barDispatch] = barTwo() // useReducer
const btnOnClick = () => {
fooDispatch({ type: "UPDATE_FOO" })
// Update barState base on the new value of foo, doesn't work.
// Foo is not yet updated.
if (fooState.value == 'new value') {
barDispatch({ type: "UPDATE_BAR" })
}
// fooState gets updated after this function block.
}
return <Button label="Button" onClick={btnOnClick} />
}
export default Chain
我的 useReducer 代码如下所示: https://kentcdodds.com/blog/how-to-use-react-context-effectively
在线if (fooState.value == 'new value') {,React 仍然没有更新值,所以我不能进入 if 块。
【问题讨论】:
标签: reactjs react-hooks