想法是从数据库里读取的数据赋值给state。但是这样写materialsInfo没有值。如何改呢
componentDidMount() {
const { dispatch, match, materials={}} = this.props;
const { params } = match;
const { materialsInfo = {} } = materials;
dispatch({
type: 'materials/fetchDetail',
payload: params.uid,
});
this.setState({
formType: materialsInfo.type // 最终就是想把materialsInfo.type赋值给formType
})
}
model文件
import {
queryMaterialsDetail,
} from '@/services/api';
import { Modal } from 'antd';
export default {
namespace: 'materials',
state: {
},
effects: {
*fetchDetail({ payload}, { call, put }) {
const response = yield call(queryMaterialsDetail, payload);
yield put({
type: 'show',
payload: response,
});
},
},
reducers: {
show(state, { payload }) {
return {
...state,
...payload,
};
},
},
};
为什么不直接用
materialsInfo.type
呢?要this.state.formType
干什么?确实需要的话可以用dispatch
的callback
函数setState