基于umi 本地存储数据

500 阅读1分钟

在mock完数据后,通过请求能得到数据,那么需要把数据存在model中,不管在什么地方通过useDispacth 和 useSelector 可以方便的得到想要的数据,减少网络请求。

    `import * as approvedServe from '@/services/supplyDemandApproval/approved';
    import { message } from 'antd';
    const approvalModel = {
      namespace: 'approved',
      state: {
        reviewList:[],
        reviewListTotal:0,
      },
      effects: {
        // 请求数据
        *getReviewList({ payload }, { call, put }) {
          const response = yield call(
            approvedServe.getReviewList,
            payload,
          );
          if (response.status === 20000) { //对请求接口状态判断,失败时提示,成功时再存储数据
            yield put({
              type: 'saveReviewListData',
              payload: response,
            });
            } else {
            message.error(response.msg);
           }
        },

      reducers: { 
      //将数据存在reduce中
        saveReviewListData: (state, data) => {
          return (state = {
            ...state,
            reviewList: data.payload.data.records,
            reviewListTotal: data.payload.data.total,
          });
        },
      }
    }
    export default approvalModel;`
    

首先需要将服务强求导入进来,通过 yield call 请求数据,通过 yield put 将数据放入reducer中,设置的有命名空间需要注意,还有设置的函数名getReviewList是server里的函数名