私のデータからのフライトのリストを含むWebページを開発する必要があります。私のデータは次のようになります:状態変更後の初期状態を返します
[
{
"id": 123,
"direction": {
"from": "Moscow",
"to": "Berlin"
},
"arrival": "2016-06-08T19:52:27.979Z",
"departure": "2016-06-08T17:51:20.979Z",
"carrier": "S7"
},
{
"id": 133,
"direction": {
"from": "Moscow",
"to": "Samara"
},
"arrival": "2016-09-08T13:52:27.979Z",
"departure": "2016-08-08T17:51:20.979Z",
"carrier": "KLM"
},
{
"id": 193,
"direction": {
"from": "Moscow",
"to": "New York"
},
"arrival": "2016-06-08T21:52:27.979Z",
"departure": "2016-06-08T17:51:20.979Z",
"carrier": "Aeroflot"
}
]
私はキャリアによっても簡単なフィルタを持っています。これはオプションとHTMLでちょうどselect
タグです:すべて、アエロフロート・ロシア航空、KLMオランダ航空、S7とonChange
イベントのリスナーで:
const mapDispatchToProps = (dispatch) => {
return {
onChangeHandler(event) {
if (event.target.value === 'All') {
dispatch(selectAllCarriers())
} else {
dispatch(selectCarrier(event.target.value))
}
}
}
};
私はKLMを選択した場合、私はこの状態を返します。
[
{
"id": 133,
"direction": {
"from": "Moscow",
"to": "Samara"
},
"arrival": "2016-09-08T13:52:27.979Z",
"departure": "2016-08-08T17:51:20.979Z",
"carrier": "KLM"
}
];
すべてを選択すると、フライトの全リストを返さなければなりません。
const flights = (state = initialState, action) => {
switch(action.type) {
case 'SELECT_CARRIER':
if (action.carrier === 'All') {
return state
} else {
return state.filter(f => f.carrier === action.carrier);
}
default:
return state;
}
};
しかし、私はKLM
を選択し、自分の状態が今だけKLM便が含まれているためすべて後、私はちょうどKLM便を持っている場合:私は、減速機でそれを実装しました。私は自分の問題を解決して初期状態を返す最良の方法は何か分かりません。
はありがとうございました! – rel1x