以自己一个实际工程项目为例做演示
1. State定义如下
// 设置初始值
state: {
productDate: {
code: '',
result: {
data:[]
},
status: 200,
},
deviceId: '888'
},
2. 项目需求
需要获取state中deviceId的初始值
3. effects中实现
// 调用服务端接口,获取数据
/**
* 以 key/value 格式定义 effect。用于处理异步操作和业务逻辑,不直接修改 state。由 action 触发,可以触发 action,可以和服务器交互,可以获取全局 state 的数据等等。
*/
effects: {
*fetchProducts({ payload },{call, put, select}){
const deviceId = yield select(state => state.product.deviceId);
console.log("deviceId = "+deviceId);
const data = yield call(getProductDatenew, deviceId)
yield put({
type: 'setProducts',
payload: data
})
}
},