web-dev-qa-db-ja.com

redux-thunk:store.dispatch()からアクションを呼び出すと、プロパティ 'type'がありません

オンラインで同様の問題を見つけましたが、store.dispatch()を介して_redux-thunk_アクションを呼び出すときの解決策はありません。

次のactionがあります。

_export class DBActions {
  static startDatabase(): ThunkAction<Promise<void>, {}, IClientState, AnyAction> {
    return async (dispatch: ThunkDispatch<{}, {}, AnyAction>, getState: () => IClientState): Promise<void> => {
      return new Promise<void>((resolve) => {
        dispatch(DBActions.connectDatabase())
        setTimeout(() => {
          let connection: (Connection | undefined) = getDBConnection(getState())
          if (connection) {
            dispatch(DBActions.getImports(connection))
            resolve()
          }
        }, 2000)
      })
    }
  }
}
_

これは、コンポーネントのmapDispatchToPropsを介して追加された場合は問題なく機能しますが、storeを定義した後に_store.ts_内で直接呼び出された場合は機能しません。 store.dispatch(DBActions.startDatabase())は以下につながります:

_TS2345: Argument of type 'ThunkAction<Promise<void>, {}, {}, AnyAction>' is not assignable to parameter of type 'AnyAction'.
  Property 'type' is missing in type 'ThunkAction<Promise<void>, {}, {}, AnyAction>'.
_

どんな助けと提案でもありがたいです!

13
Shin

エラーメッセージを回避する簡単な回避策-解決策ではありませんが:

dispatch<any>(DBActions.getImports(connection))
1
Rambatino