Redux Promise Middleware は、アクション ペイロードの promise 解決を処理しているようです。たとえば、Promise
ペイロードとしてを使用する次のアクション作成者を考えてみましょう。
export default class ActionCreators {
public static fetchAllUsers(): FetchAction {
return {
type: actionTypes.FETCH_ALL_USERS,
payload: fetch("api.com/users")
};
}
}
このアクション クリエーターを使用する場合、TypeScript はredux-promise-middleware のために実際に返されるAction
データではなく、返されるデータを期待します。Promise
したがって、次のコードはコンパイルされません。Property 'then' does not exist on type 'Action'.
dispatch(ActionCreators.fetchAllUsers())
.then(response => {
// do something with response
})
Typescript はpayload
やtype
のような返されるプロパティを期待しますが、プロミスは既に処理され、実際に返されているため、実際には返されません。
.then
使用する準備ができていますが、typescript は何か他のものを期待しているためコンパイルされません。
問題は次のとおりだと思います: redux-promise-middleware アクションを処理するための正しいタイピングを記述し、redux'connect
関数に正しいディスパッチ タイプmapDispatchToProps
などを提供する方法.