페이지로드시 처음에 표시 할 JSON 데이터의 양이 많고 (특정 작업 만 수행 할 수 있도록) 특정 양을 표시하도록 데이터를 필터링하는 옵션이 있다고 가정 해 보겠습니다. 내 FILTER_DATA
액션이 전달되면 view
속성을 확인하고 도우미 함수를 실행하여 데이터 배열을 필터링하지만 필요한만큼 표시합니다.Redux : 감속기에서 데이터를 필터링하고 초기 데이터 상태로 되감니까?
그러나 필터링 된 데이터 버전으로 상태를 업데이트하고 사용자가 원래보기 (전체 데이터 세트)로 돌아가고 싶다고 가정하면 상태를 되감기위한 방법이 있습니까? 그 시점까지? 다시 한 번 데이터를 가져 오기 위해 GET 요청을 다시 수행하기 위해 FETCH_DATA
작업을 다시 보냈지 만 불쾌한 것처럼 보입니다. 생각?
참고 : 아래는 내 감속기입니다 data
초기 상태 (Initial) 개체에 대한 것은 FETCH_DATA_SUCCESS
파견 될 때까지 빈 배열 값이며, GET 요청에서 가져온 JSON 데이터에 state.data
을 설정합니다.
const app = (state = initialState, action) => {
switch(action.type) {
case FETCH_DATA:
return { ...state, error: '', loading: true };
case FETCH_DATA_SUCCESS:
return { ...state, error: '', loading: false, data: action.data, view: 'all' };
case FETCH_DATA_FAILURE:
return { ...state, error: action.error, loading: false };
case FILTER_DATA:
let data;
if (action.view === 'week') {
data = groupData(getLastWeek(state.data), action.view);
} else if (action.view === 'month') {
data = groupData(getLastMonth(state.data), action.view);
} else if (action.view === 'all') {
data = state.data;
}
return { ...state, error: '', loading: false, data: data, view: view };
}
return state;
}
감사합니다.