为什么我的编辑(PHPSorm)说我不需要"等待"?它工作正常...
下面是代码:
export const fetchBoards = (): AppThunk =>
async function (dispatch): Promise<void> {
try {
const { boards }: { boards: IBoardItem[] } = await api.get('/board');
dispatch({ type: 'UPDATE_BOARDS', payload: boards });
window.console.log('Success');
} catch (e) {
window.console.error(e);
dispatch({ type: 'ERROR', payload: e });
}
};
export const addBoard = (board: { title: string }): AppThunk =>
async function (dispatch): Promise<void> {
try {
const res = await api.post('/board', board);
window.console.log(res);
window.console.log('Before');
await dispatch(fetchBoards()); // 'await' has no effect on the type of this expression
window.console.log('After');
} catch (e) {
window.console.error(e);
const res = dispatch({ type: 'ERROR', payload: e });
}
};
1条答案
按热度按时间eqzww0vc1#
因为您的
dispatch
输入不正确,并且不知道您正在使用的redux-thunk
中间件。请根据TypeScript快速入门https://redux-toolkit.js.org/tutorials/typescript设置您的项目,它将为您提供正确的
AppDispatch
类型以用于AppThunk
类型。另外请注意,您编写的Redux通常是一个非常过时的(2019年以前)风格-在现代Redux中,您不会使用手动对象来分派
"ACTION_TYPES"
,它通常是代码的1/4。请阅读why Redux Toolkit is how to use Redux today。