问题描述
我正在文件中尝试useReducer()
,想知道是否可以使用异步代码,但是在我的console.log()
中,我得到一个空数组,它达到了我的默认值。
关于这是为什么的任何想法?您可以通过函数调用在对象中进行异步/等待吗?
组件文件:
const [state,dispatch] = useReducer(reducer,{})
useEffect(() => {
const getWriteKeys = () => {
dispatch(Actions.getWriteKeys(workspaceUid,sourceUid));
};
getWriteKeys();
},[dispatch,workspaceUid,sourceUid]);
console.log('state: ',state);
动作文件:
const initialState = {
writeKeys: [],loading: true,};
export default {
getWriteKeys: async (workspaceUid,sourceUid) => {
const res = await api.sources.getWriteKeys(workspaceUid,sourceUid);
return {
type: UserActions.SOURCES_GET_WRITE_KEYS,payload: {
writeKeys: res
}
}
}
};
减速器:
const reducer = (state = initialState,action = {}) => {
switch (action.type) {
case UserActions.SOURCES_GET_WRITE_KEYS:
return { ...state,writeKeys: action.payload.writeKeys,loading: false };
default:
console.log('in default')
return state;
}
};
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)