현재 I 컨테이너 구성 요소의 수명주기 방법 componentWillMount에서 API에서 사전 데이터를로드 :가 돌아 오는 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);
};
}
그래, 이걸 사용하려고 생각했는데 더 많이 들여다 보지 않았다. 처음에는 소품을받을 때마다 데이터를 다시 가져올 것이라고 생각했기 때문에 처음에는이 기능을 구현하고 싶지 않았지만 소품을 먼저 확인하지는 않았습니다. 예를 연결해 주셔서 고마워요, 나중에 너무 유용하다고 생각합니다. –