dva 匹配到不同路径,触发不同的effect

匹配到不同路径时,触发不同的effect

import pathToRegexp from 'path-to-regexp';

// 常量 
const PAGE_ROUTE = {
  MATERIAL_STORAGE: {
    pathname: '/materialStorage',
  },
  FINANCIAL_PRODUCTS: {
    pathname: '/financialProducts',
  },
 DETAIL_COPY: {
    pathname: '/layout/copy/:layoutId',
  },
}

...



setup({ dispatch, history }) {
      return history.listen((props) => {
        const { pathname, state } = props;
        Object.entries(PAGE_ROUTE).forEach(([key, value]) => {
          let matchResults = [];
          const groups = pathToRegexp(value.pathname, matchResults).exec(pathname);
          if (groups) {
            let params = {};
            matchResults.forEach(function (k, i) {
              params[k.name] = groups[i + 1];
            });
            console.log('state', state);
            dispatch({ type: 'detailIndexPage', payload: { layoutScheme: state, params } });
          }
        });
      });
    },
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容