DVA-subscriptions
阅读原文时间:2023年07月10日阅读:1

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
});
}
},
};

手机扫一扫

移动阅读更方便

阿里云服务器
腾讯云服务器
七牛云服务器

你可能感兴趣的文章