私はreactとreduxを使用してこのUIを作成しています。以下はUIのイメージです。 This is image of UIreduxで異なるコンポーネントの状態を更新する
現在、「カテゴリ」をクリックするとデータが表示されます。次に、マップされていないリンクをクリックすると、マップされていない「カテゴリ」の商品が表示されます。しかし、「Addons」をクリックしてからマップされていないリンクをクリックすると、マップされていない「カテゴリ」の商品が表示されます。どのようにして減速機を書いて、「アドオン」のマップされていない製品も表示するようにします。私の反応するメインファイルでは、(this.props.menu_items)を使用しているため、Addonsの後にマップされていないクリックされたときに 'Categories'のデータが表示されます。
これは私のレデューサーファイルです。
import { AppConstants } from '../constants';
const initialState = {
state: [],
menu_items: [],
menu_items_copy: [],
addon_items: [],
unmapped: false,
};
export default (state = initialState, action) => {
switch (action.type) {
case AppConstants.getMenuItems:
return {
...state,
}
case AppConstants.getMenuItemsSuccess:
return {
...state,
menu_items: action.menu_items,//This contains the data showed when
// 'categories' is clicked
menu_items_copy: action.menu_items,
unmapped: false,
}
case AppConstants.getAddonsItems:
return {
...state,
}
case AppConstants.getAddonsItemsSuccess:
return {
...state,
menu_items: action.addon_items,//Here I update the data to addons data
}
case AppConstants.showAllProducts:
return {
...state,
menu_items: action.menu_items,
unmapped: false
}
case AppConstants.getUnmappedMenuItemsSuccess:
return {
...state,
unmapped: true,
menu_items: state.menu_items_copy.filter((item) => {-->How do I write
here for action.addon_items also
return (item.productList.length == 0)
})
}
case AppConstants.hideError:
return {
...state,
error: null
}
default:
return state
}
};