美文网首页
Antd pro数据访问

Antd pro数据访问

作者: hxynet | 来源:发表于2019-07-30 16:16 被阅读0次

    一. 页面发出访问数据请求:

    this.props.dispatch({

        type: 'offline_tools_datamap/fetch', //model中的命名空间和方法

        payload:params //参数

    });

    二. 页面获取数据,页面组件上方添加连接,从redux的state中读取dispatch请求到的数据

    @connect(state => {

      return {

        list: state.offline_tools_datamap.list,

        loading: state.loading,

      };

    })

    三. models目录中和页面同名的js供页面调用(models目录可以和页面同一级目录或在页面上级目录)

    import { queryDataMaps } from '@/services/api';

    export default {

      //不同的model最好命名空间不同,如果相同,在相同的命名空间下,effects和reducer不能有冲突

      namespace: 'offline_tools_datamap',

      state: {

        list: []

      },

    //副作用,供页面调用,call用来调用外部方法,put用来发出一个redux的action

      effects: {

        *fetch({ payload }, { call, put }) {

        //queryDataMaps是/services/api中的方法

          const response = yield call(queryDataMaps, payload);

          console.log(JSON.stringify(response));

          yield put({

            type: 'save',

            payload: response,

          });

      },

    //effects不直接操作redux state,effects调用外部方法获取到数据后,put一个action,然后在reduces中处理这个action

      reducers: {

        save(state, action) {

          return {

            ...state,

            list: action.payload,

          };

        },

    };

    };

    四.services/api.js中定义一个异步方法用来访问外部数据

    export async function queryDataMaps(params) {

      return request(`/flowapi/datamaps?${stringify(params)}`);

    }

    五. mock文件夹中的js文件定义mock数据

    export default {

      //表示当处理mock状态时,如果以get方式访问/flowapi/datamaps,将调用getDataMaps方法产生mock数据

      'GET /flowapi/datamaps': getDataMaps,

    };

    相关文章

      网友评论

          本文标题:Antd pro数据访问

          本文链接:https://www.haomeiwen.com/subject/wzpnrctx.html