models的数据请求时机

import * as userService from '../services/userresult';

const methods = {
  user: userService.fetch,
  orgs: userService.fetchorgs,
  repos: userService.fetchrepos,
};

export default {
  namespace: 'userresult',
  state: {
    user: {},
    orgs: [],
    repos: [],
  },
  reducers: {
    saveUser(state, { payload: { data: user } }) {
      return { ...state, user };
    },
    saveOrgs(state, { payload: { data: orgs } }) {
      return { ...state, orgs };
    },
    saveRepos(state, { payload: { data: repos } }) {
      return { ...state, repos };
    },
  },
  effects: {

    // 查询用户资料
    // 机构
    // repos
    *fetch({ payload: { username, datakey = 'user' } }, { call, put }) {
      const { data } = yield call(methods[datakey], { username });
      yield put({
        type: 'save',
        payload: {
          data,
        },
      });
    },
  },

在路由监听时候做触发的时机

  subscriptions: {
    // 监听路由,决定model的数据请求时机
    setup({ dispatch, history }) {
      return history.listen(({ pathname, query }) => {
        if (pathname === '/gitsearch/user/result') {
          const username = query.query;
          dispatch({ type: 'fetch', payload: { username } });
          dispatch({ type: 'fetch', payload: { username, datakey: 'orgs' } });
          dispatch({ type: 'fetch', payload: { username, datakey: 'repos' } });
        }
      });
    },
  },
};
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,079评论 19 139
  • 五、因特网的路由选择协议 1.有关路由选择协议的几个基本概念 Ⅰ、理想的路由算法 路由表中的路由是怎样得出的呢?核...
    dmmy大印阅读 2,069评论 0 4
  • 觉得当个太阳最自在,至少这样在这个世界上我不会亏欠任何人,也不会有任何人因为我不快乐。 这句话语句不通过,不合逻辑...
    陈蹦迪阅读 395评论 0 1
  • 一个从小拿着信用卡随便刷,机票随便买,喝遍各庄红酒,没事玩个帆船跳个直升机的人,要怎么接受“食堂肉菜涨了5毛,以后...
    四姨太的秘密花园阅读 601评论 0 0
  • “老板,再...再来一瓶...”我醉醺醺地喊着。 “唉,姐,你可不能再喝了啊,就为了他, 值吗?”一...
    千面狼君阅读 184评论 0 0