models 下的 js 文件详解
export default {
namespace:'example' // 表示对于整个应用不同的命名空间,以便后续组件通过 this.props.example访问,和当前的 model 文件名相同就好
state:{
initText:'hello' // 表示当前的example 中的 state 状态,可以赋初始值
}
subscriptions:{ // 订阅数据源
setup({dispatch,history}) {
// 订阅,监听服务器连接,键盘输入,路由,状态等的变化
}
}
effects:{ // 处理异步逻辑
*fetch({payload},{call,put}}){
// payload 是从组件 router 传递过来的参数
// call 方法可以使用 payload 参数传递给后台程序进行处理,这里可以调用 service 层的方法进行后端程序
// put 表示存储在当前命名空间 example 中,通过 save 方法存在当前 state 中
yield put({type:'save'});
}
}
// 用来保存更新 state 值 effects 中的 put 方法调用这里的方法
reducers:{
save(state,action){
return {...state,...action.payload}
}
}
}