export default {
// 命名空间
namespace: 'prducation',
// 存放数据的state
state: {
age: '24'
}
// 修改数据的方法
reducers:{
// 第一个参数是state仓库的状态,第二个是派发的action
changeState( state, action){
return {...state,...action.payload}
}
}
// 处理异步的方法
effects: {
*getApi({payload}, { sellect, call, put}) {
// sellect 用来获取仓库数据的方法
const age_two = yield sellect( state => state.age);
// call 用于调用异步逻辑,支持 promise 。
const result = yield call(fetch, '/todos');
// put用于触发action
yield put({
type: 'prducation/changeState',
payload
})
}
}
// 自执行方法
subscriptions: {
setup({dispatch, history}) {
}
}
}
如何在页面中使用仓库的数据和方法
- 通过从dva中引入connect高阶组件,然后利用mapStateToProps和mapDispatchToProps
dva相比较redux来说省去了麻烦的action的type,dva的type就是模块中的方法名字