javascript 为什么我的编辑说“'await'对此表达式的类型没有影响”?

rvpgvaaj  于 2023-02-02  发布在  Java
关注(0)|答案(1)|浏览(1148)

为什么我的编辑(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 });
    }
  };
eqzww0vc

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

相关问题