场景前提:
- 用 Modal 弹出一个表单,用户填写必要信息后创建新的项
- 后台返回提交表单提交成功后才关闭
- 提交失败不关闭modal
伪代码:
function* fetchUser(action) {
try {
const user = yield call(Api.fetchUser, action.payload.userId);
yield put({type: "USER_FETCH_SUCCEEDED", user: user});
// 假设这里是提交表单成功,可以关闭modal
} catch (e) {
yield put({type: "USER_FETCH_FAILED", message: e.message});.
// 假设这是 提交表单失败,不允许关闭弹框
}
}
疑问:
- 在使用redux-saga的前提下,这个modal的visible状态存放在哪里? 放在store还是组件内部
- 放在store里面,显示或者隐藏modal都是通过action来触发,可以比较好的在提交表单数据给后台之后根据后台返回码来判断是否关闭modal,但是放在store又感觉略显啰嗦
- 放在组件内部,我不太清楚怎么在组件内获取后台返回的状态,