Ant Desgin Pro 如何将将异步得到的数据赋值给state

想法是从数据库里读取的数据赋值给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,
      };
    },
  },
};
阅读 2.8k
1 个回答

为什么不直接用materialsInfo.type呢?要this.state.formType 干什么?确实需要的话可以用dispatchcallback函数setState

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题