私は追加と編集のために同じフォームと同じ状態をreduxで使用しています。編集用のデータを取得するためにAPIを呼び出すと、レスポンスが到着する前にフォームを追加するようにルータを変更します。すべてのフォームデータは、追加と編集の両方に同じ状態を使用しているため、項目を追加するために自動的に入力されます。これが起こらないようにする方法はありますか?反応ルータが変更されたときにAPI応答をキャンセルできますか?
自分の行動の作成者:
fetchById: function (entity, id) {
return function (dispatch) {
dispatch(apiActions.apiRequest(entity));
return (apiUtil.fetchById(entity, id).then(function (response) {
dispatch(apiActions.apiResponse(entity));
dispatch(actions.selectItem(entity, response.body));
}
}
}
は応答が遅く、その後のSelectItemが遅れて派遣されたよう。そして、アイテムを追加するためのフォームを開くと、このフォームはレスポンスのこのデータで埋められます。
私たちがどのルートにいるかチェックするのは良い考えです。 1つのシナリオ 1つの項目の編集をクリックすると、すぐに戻り、2番目の項目の編集項目をクリックします。最初の要求に対する応答が2番目の要求の応答より後に来る場合、フォームが同じルートにあってもフォームは偽のデータで埋められます。 –
その理由はわかりません。私は、異なるアイテムが異なる編集ルートを持っていると推測します。そうではありませんか? –
ああそう..私はid部分について忘れてしまった。ありがとう、私はそれを試してみる.. –