【发布时间】:2022-01-11 00:46:48
【问题描述】:
我经常有这样一个用例,reducer 中有一些状态,也需要在一些回调(useCallback)中访问它
const [state, dispatch] = useReducer(reducer, initialState);
...
const handleAction = useCallback(()=>{
// dependency on state
},[])
为了避免在每次状态更改时运行 useCallbacks,我会联系一个 ref 并在每次渲染时为其分配状态
stateRef.current = state;
然后,无论何时我必须在回调中使用 state 中的某些内容,都可以从 stateRef 访问它。这是正确的做法吗?
【问题讨论】:
-
当然。你在寻找什么样的答案?使用依赖于状态的
useEffect和使用依赖于状态的useCallback之间没有太大区别吗?您正在谈论使用useEffect挂钩来正确更新stateRef值,对吧?
标签: javascript reactjs react-hooks