は、現在、私コンテナコンポーネントのライフサイクルメソッドcomponentWillMountでAPIからのプリロードデータ:はReduxのcomponentWillMountを呼び出すことはありませんバックナビ+ルータに反応
componentWillMount() {
const { dept, course } = this.props.routeParams;
this.props.fetchTimetable(dept, course);
}
ユーザがルート/:dept/:course
に移動したときに呼び出され、それが正常に動作しますあなたがナビゲートするまで、/mif/31
〜/mif/33
と入力し、戻るボタンを押します。コンポーネントは実際に再初期化されないため、ライフサイクルメソッドは呼び出されず、データは再ロードされません。
この場合、データをリロードする方法はありますか?別のデータプリロード方法を使用する必要がありますか?私は反応のルータは、背面をナビゲートするなど、任意の場所の変更でLOCATION_CHANGE
イベントを放出を参照してください、多分私は何とかそれを使用することができますか?あなたを想定し
import { getTimetable } from '../api/timetable';
export const REQUEST_TIMETABLE = 'REQUEST_TIMETABLE';
export const RECEIVE_TIMETABLE = 'RECEIVE_TIMETABLE';
const requestTimetable =() => ({ type: REQUEST_TIMETABLE, loading: true });
const receiveTimetable = (timetable) => ({ type: RECEIVE_TIMETABLE, loading: false, timetable });
export function fetchTimetable(departmentId, courseId) {
return dispatch => {
dispatch(requestTimetable());
getTimetable(departmentId, courseId)
.then(timetable => dispatch(receiveTimetable(timetable)))
.catch(console.log);
};
}
これは意味がありますが、私はこれを使用することを考えていましたが、それ以上調べていませんでした。私は最初にこれを実装したくはありませんでした。なぜなら、それは小道具を受け取るたびにデータを再フェッチすると思ったからです。しかし、小道具を最初にチェックすることは考えていませんでした。この例をリンクしていただきありがとうございます。 –