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