问题:useReducer生成的dispatch无法dispatch函数
解决:使用useThunkReducer代替useReducer
const wrapperDispatch = (dispatch, getState) => {
return (action) => {
if (typeof action === 'function') {
action(wrapperDispatch(dispatch, getState), getState);
} else {
dispatch(action);
}
};
};
export const useThunkReducer = (reducer, defaultState) => {
const [state, dispatch] = useReducer(reducer, defaultState);
const getState = () => state;
const newDispatch = wrapperDispatch(dispatch, getState);
return [state, newDispatch];
};
本文介绍了解决useReducer生成的dispatch无法处理函数型action的问题,通过使用自定义的useThunkReducer,它能更好地支持异步操作和复杂的action处理。
224

被折叠的 条评论
为什么被折叠?



