1
私のアプリではサードパーティのライブラリからメソッドを呼び出すワーカーがいます。サードパーティライブラリは支払いサービス(Zuora)であり、メソッドはiframeフォームを初期化し、コンポーネント内でレンダリングします。サードパーティのライブラリメソッドには、iframeフォームの送信時に呼び出されるコールバック関数が必要です。ここでサードパーティのコールバックによるアクションのディスパッチ
は、佐賀の簡略図です:
function* render(action) {
try {
const callback = function(response) {
if (response.success) {
// DISPATCH ACTION HERE
}
}
ZUORALIBRARY.render(callback);
yield put({...action, type: RENDER_SUCCESS});
} catch (e) {
yield put({...action, type: RENDER_FAIL, errors: e});
}
}
私は、コールバック内のアクションを派遣したいと思いますが、それが動作することに何の運を持っていませんでした。これには、コールバック関数をジェネレータにして、yield
/put
を使用することが含まれています。私はこのアプローチが反パターンかもしれないことも読んだ。
これを処理する別の方法がありますか?
ようなものをやって、私はこの方法では、それらとの対話の 'middleware'責任を作成する傾向がある私それらの第三者のロジックからアプリケーションのロジックを分離することができます。ですから、理想的には、あなたが 'dispatch'関数へのアクセスを考慮して、ミドルウェアからあなたのアクションをディスパッチすることができます。 – Ematipico
すごい、あなたが私に指すことができるリソースがありますか? –
私は公式のドキュメンテーション[ここ](http://redux.js.org/docs/advanced/Middleware.html#seven-examples)を個人的に開始しました。それは本当に簡単です!その後、私は自分の個人的な変更を始めました。ミドルウェアについてもっと理解したい場合は、ページ全体を読むことができます – Ematipico