在后续的重新挂载中不会调用Redux操作

时间:2019-12-11 20:06:06

标签: javascript reactjs redux react-redux redux-saga

我正在使用Web应用程序,并且组件/路由之一存在缓存问题。有一个“母版”页面,用户可以从中查看详细信息页面。首次构造详细信息页面时,它会正确加载数据,但是当用户返回到母版并选择另一项以查看详细信息时,将为他们提供陈旧的数据。加载是从componentDidMount()完成的,并且在第一次安装并重新安装时被调用,就很好了。

首先,执行以下操作:LOAD_CHALLENGE_DETAILSLOAD_CHALLENGE_DETAILS_SUCCESS。在后续视图中,没有success

我在saga中加载数据,如下所示:

import { takeLatest, call, put } from 'redux-saga/effects';
import api from 'utils/api';
import { loadChallengeDetailsSuccess } from './actions';
import { LOAD_CHALLENGE_DETAILS } from './constants';

function* loadChallengeDetailsData({ id }) {
  console.log('loadChallengeDetailsData');
  const response = yield call(api, `/challenges/details/${id}`);
  const respJson = yield call([response, 'json']);
  yield put(loadChallengeDetailsSuccess(respJson));
}

/**
 * Root saga manages watcher lifecycle
 */
export default function* getData() {
  yield takeLatest(LOAD_CHALLENGE_DETAILS, loadChallengeDetailsData);
}

它将打印到控制台:

action: {type: "powerwalks/Challenges/LOAD_CHALLENGE_DETAILS", id: "0d6e0252-a5ce-4e46-a3cb-042e2b110214"}
saga.js:9 loadChallengeDetailsData
reducer.js:12 action: {type: "powerwalks/Challenges/LOAD_CHALLENGE_DETAILS_SUCCESS", payload: {…}, @@redux-saga/SAGA_ACTION: true}

然后我返回并选择另一个“记录”后,它只会打印:

action: {type: "powerwalks/Challenges/LOAD_CHALLENGE_DETAILS", id: "72459cb0-e0d3-49bb-81f0-7b753f2de5a2"}

我对正在发生的事情感到困惑。请告知。

0 个答案:

没有答案