問題タブ [redux-promise-middleware]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
815 参照

typescript - Redux Promise Middleware でディスパッチのリターン タイプを処理する方法は?

Redux Promise Middleware は、アクション ペイロードの promise 解決を処理しているようです。たとえば、Promiseペイロードとしてを使用する次のアクション作成者を考えてみましょう。

このアクション クリエーターを使用する場合、TypeScript はredux-promise-middleware のために実際に返されるActionデータではなく、返されるデータを期待します。Promise

したがって、次のコードはコンパイルされません。Property 'then' does not exist on type 'Action'.

Typescript はpayloadtypeのような返されるプロパティを期待しますが、プロミスは既に処理され、実際に返されているため、実際には返されません。

.then使用する準備ができていますが、typescript は何か他のものを期待しているためコンパイルされません。

問題は次のとおりだと思います: redux-promise-middleware アクションを処理するための正しいタイピングを記述し、redux'connect関数に正しいディスパッチ タイプmapDispatchToPropsなどを提供する方法.

0 投票する
2 に答える
5738 参照

javascript - Redux Promise Middleware でアクションを連鎖するにはどうすればよいですか?

私はReactとReduxを初めて使用します。redux-promise-middlewareを使用して複数の API 呼び出しをチェーン化し、次のようにアクションを実装したいと考えています。

locationActions.js:

以下を使用して、React コンポーネントからこのアクションをディスパッチしますmapDispatchToProps

これはうまくいきます!visitLocationしかし、決済が完了してから別のアクションをディスパッチしたいです。Promise.then()メソッドが提供されていないため呼び出すことができませんdispatch。したがって、アクションをレデューサーに「バインド」しません。

チュートリアルでは、呼び出す必要dispatch(secondAction())があると記載されていますが、アクション クリエーターでディスパッチを利用できません。

誰かが私に欠けているものを指摘できますか?

編集:

最初の回答で示唆されているように、次のアプローチを試しました。

しかし、私は action:undefined と次のエラーを受け取りました: