私はRedux Sagaを学んでおり、大部分は意味があります。しかし、より良い実装があるように思えるシナリオに遭遇しました。Redux Sagaの従属非同期呼び出し
POST
リクエストで第三者のウェブサイトに注文を提出する必要があります。注文を送信するには、最初にGET
リクエストを別のエンドポイントに送信して、POST
リクエストに必要な情報を取得する必要があります。つまり、POST
リクエストは、GET
リクエストが正常に返されたことに依存しています。
私の現在の作業ソリューションは、次のようになります。
function* create(action) {
try {
const code = yield axios.get('/url/to/code?id=XXXXX'`);
const order = {...some_object, code: code.data}
const result = yield axios.post('/url/to/order', order);
yield put({...action, type: CREATE_SUCCESS, data: result.data});
} catch (e) {
const errors = e.response.data;
yield put({...action, type: CREATE_FAIL, errors: errors});
}
}
はReduxの佐賀でこれを処理するための推奨方法はありますか?
私が持っていた考えの1つは、各リクエストをそれ自身のアクションに移動することでした。GET
アクションはPOST
アクションをディスパッチします。これを行う方法の入力を探している '佐賀'の方法。