I持って次のアクション:redux-sagaにディスパッチするすべてのアクション(リクエスト後の成功/失敗)を待つ方法は?
export function createRequest(inputValues) {
return {
type: actions.PERSON_CREATE_REQUEST,
payload: {
inputValues
}
};
}
export function createSuccess(person) {
return {
type: actions.PERSON_CREATE_SUCCESS,
payload: {
person: person
}
};
}
export function createFailure(error) {
return {
type: actions.PERSON_CREATE_FAILURE,
payload: {
error
}
};
}
佐賀:PERSON_CREATE_FAILURE
またはPERSON_CREATE_SUCCESS
が派遣された場合、私は確認したい
handleSubmit = async (event, values) => {
event.preventDefault();
await store.dispatch(action.createRequest(values));
if (this.props.error === null) {
store.dispatch(reset(this.props.form));
}
};
await store.dispatch(action.createRequest(values));
後:提出フォームで呼び出され
export function* createPerson(action) {
try {
const data = yield call((async() => {
const person = action.payload.inputValues;
return await api.post(person);
}));
yield put(createSuccess(data));
} catch (error) {
yield put(createFailure(error));
}
}
export function* watchCreatePerson() {
yield takeEvery('PERSON_CREATE_REQUEST', createPerson);
}
export function* rootSaga() {
yield [
fork(watchCreatePerson),
];
}
機能。 PERSON_CREATE_FAILURE
で、小道具にマップされている店舗にerror
を設定しました。しかし、PERSON_CREATE_REQUEST
が送出された後にコードの次の行がif
が呼び出されます。しかし、私はPERSON_CREATE_FAILURE
またはPERSON_CREATE_SUCCESS
ディスパッチまで待つ必要があります。そのアクションを待つために佐賀を変更するにはどうすればよいですか?
私はredux-formを使用しているので、店舗に接続しています。私はMapStateToPropsを持っています。問題は命令です。現在の動作:PERSON_CREATE_REQUEST、エラーが更新されていないため、PERSON_CREATE_REQUEST、PERSON_CREATE_SUCCESS/PERSON_CREATE_FAILUREフォームをリセットしています。 PERSON_CREATE_REQUESTとPERSON_CREATE_SUCCESS/PERSON_CREATE_FAILUREをディスパッチして、エラーが更新されたときにフォームをリセットしてコードを作成したいと思います。 – user2950602
私が作っているところは、あなたのhandleSubmit関数でcreateRequestアクションの結果を待つ必要はないということです。あなたはあなたのレデューサーとリアクションを通してあなたが望む行動を達成することができます。 –
どうすればいいですか? – user2950602