dva dispatch会不停的发起同一个请求

使用dvajs,在无状态组件中dispatch一个effects会不停的发送请求,WHY?

原因是reducers中的函数名称不能与effects中一致!!!

如下是会不停触发dataStatistics接口的请求的!

reducers: {
    dataStatistics(state, action) {
      return {
        ...state,
        dataStatistics: action.payload
      }
    },
},
effects: {
    * dataStatistics(action, { call, put }) {
      const result = yield call(API.dataStatistics, action.payload)
      // 预缓存主要数据
      yield put({ type: 'dataStatistics', payload: result })
    },
},

而这样子就不会 

reducers: {
    dataStatistics(state, action) {
      return {
        ...state,
        dataStatistics: action.payload
      }
    },
},
effects: {
    * getDataStatistics(action, { call, put }) {
      const result = yield call(API.dataStatistics, action.payload)
      // 预缓存主要数据
      yield put({ type: 'dataStatistics', payload: result })
    },
},

猜你喜欢

转载自blog.csdn.net/hzxOnlineOk/article/details/109052787
dva