web-dev-qa-db-fra.com

redux-thunk: propriété 'type' manquante lors de l'appel d'une action via store.dispatch ()

J'ai trouvé des problèmes similaires en ligne, mais aucune solution pour appeler une action redux-thunk Via store.dispatch().

J'ai le action suivant:

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)
      })
    }
  }
}

Cela fonctionne sans problème lorsqu'il est ajouté via mapDispatchToProps dans un composant, mais pas lorsqu'il est directement appelé dans mon store.ts Après avoir défini un store. store.dispatch(DBActions.startDatabase()) conduit à:

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>'.

Toute aide et suggestion est appréciée!

13
Shin

Une solution de contournement facile pour éviter le message d'erreur - bien que ce ne soit pas une solution est:

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