首先给出简介:
以 key/value 格式定义 effect。用于处理异步操作和业务逻辑,不直接修改 state。由 action 触发,可以触发 action,可以和服务器交互,可以获取全局 state 的数据等等。
用过的小伙伴应该都知道它是处理异步操作,来触发action修改state
的哈没用过的先看文档吧
官方给出示例:
app.model({
namespace: 'todos',
effects: {
*addRemote({ payload: todo }, { put, call }) { // 要说的就是这里的参数
yield call(addTodo, todo);
yield put({ type: 'add', payload: todo });
},
},
});
首先,payload
就是dispatch
异步操作的时候传入的参数,那么第二个参数就是{ put, call, select }
,分别都是: