今天做项目时,发现一个问题,当从后台获取的数据第一次componentDidMount时显示未定义,我是从store中直接取得,再次render时数据才显示
排查了一下问题,发现需要从dispatch的回调函数中获取,所以
effects: {
*getInfo({ payload }, { call, put }) {
const res = yield call(queryInfo, payload);
console.log(res)
const data = res.data
yield put({
type: "change",
payload: {
data
}
})
return data
//此处data必须返回,否则在dispatch的回调函数里参数打印显示undefined
},
componentDidMount() {
const { dispatch } = this.props;
//项目状态
dispatch({
type: "center/Info", payload: {
id:"jj"
},
}).then((data) => {
console.log(data)
const id = data.id;
//这样就可以了
此处为问题记录,如有问题,请指正