• DVA-subscriptions


    import { routerRedux } from 'dva/router'
    export default {
      namespace: 'notice',
      state: {
        notices:[],
        loading: false,
        editModalVisible: false
      },
      effects: {
        *watchAndRefreshList({ dispatch }, { put, call, take }){
          let listAction = {};
        //关闭弹框后重新获取数据
        //调用hideModal就会触发fetch
    
          while(true){
            const action = yield take(['notice/fetch', 'notice/hideModal']);
            console.log('action', action);
            if(action.type == 'notice/fetch'){
              action.type = 'fetch';
              listAction = action;
            }
            if(action.type == 'notice/hideModal'){
              action.type = 'hideModal';
              dispatch(listAction);
            }
          }
        },
        *fetch({ payload }, { call, put }) {
          const response = yield call(Get, '/api/notices');
          yield put({
            type: 'save',
            payload: response
          })
        },
        *gologin({ payload }, { call, put }) {
          yield put(routerRedux.push('/user/login'))
        }
      },
      reducers: {
        save(state, action) {
          return {
            ...state,
            notices: action.payload
          }
        },
        showModal(state, action){
          return {
            ...state,
            editModalVisible: true
          }
        },
        hideModal(state, action){
          return {
            ...state,
            editModalVisible: false,
          }
        },
      },
      subscriptions: {
        //监听地址,如果地址含有app则跳转到登陆页
        setup({ dispatch, history }) {
          history.listen(location => {
            if (location.pathname.includes('app')) {
              dispatch({
                type: 'gologin'
              })
            }
          });
        },
        watchAndRefreshList({ dispatch, history }){
          dispatch({
            type: 'watchAndRefreshList',
            dispatch
          });
        }
      },
    };
  • 相关阅读:
    HDU1205 吃糖果【水题】
    HDU2568 前进【水题】
    架构图初体验
    五层架构
    文件系统权限设计涉及范畴
    微服务
    领域驱动设计
    容器技术Docker
    架构总结
    仓储模式的简单理解
  • 原文地址:https://www.cnblogs.com/zoeeying/p/11093311.html
Copyright © 2020-2023  润新知