ページロード時に最初に表示するJSONデータが大量にあり(これまでのところ作業中)、そのデータをフィルタリングして特定の量だけを表示するオプションがあるとします。 FILTER_DATA
アクションがディスパッチされると、view
プロパティがチェックされ、ヘルパー関数が実行され、データの配列が表示されます。Redux:Reducerでデータをフィルタリングして初期データ状態に巻き戻しますか?
しかし、フィルタリングされたバージョンのデータで状態を更新していて、元のビュー(データセット全体)に戻したい場合、状態を巻き戻す方法がありますその点まで?私はもう一度データを取得するためにGET要求を再実行するために、FETCH_DATA
アクションを再ディスパッチすることを検討していましたが、それは不愉快に思えます。思考?以下 は私の減速である:
注:data
初期状態オブジェクトで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;
}
ありがとうございます。