所以我有一个自定义钩子,布局是这样的:
const reducer = (state, action) => {
console.log(state);
/* transform state */
return updatedState;
}
function useMyHook(init) {
const [state, dispatch] = useReducer(reducer, {});
/* Other hook stuff */
return [state, dispatch, otherHookStuff];
}
在组件中使用时,调度功能本身可以工作,它可以正确更新状态,并且状态可以正确反映在组件中,但是任何进一步的调度都不会在更新后的状态上运行,因此{{1 console.log
中的}}始终显示reducer
。我不知道这里会发生什么,除非在自定义钩子中不能使用reducer钩子,考虑到其他所有钩子都将违反直觉。