多くの州があるオーダーリデューサーがあります。
const initialState = {
channel: null,
order: {},
fetching:true,
menu: [],
categories: [],
subcategories: [],
currentCategoryId: 1,
currentSubcategoryId: 5,
currentMenu: [],
};
フィルタリングしたいのはmenu
です。私が持っているとのmenu
オブジェクトを持つ状態の配列です。これらの状態で私がやりたいのは、とを使用してフィルタリングし、フィルタリングされた状態をに置くことです。menu_item
currentCategoryId
currentSubcategoryId
currentCategoryId
currentSubcategoryId
menu
currentMenu
case Constants.ORDER_CHANNEL_CONNECTED:
return
{...state,currentMenu: action.menu.map((menu) => {
if(state.currentCategoryId == menu.category_id){
return menu;
}
else return false;}}
そのために、上記のようなコードを作成しました。フィルター処理された値を返しますが、同じ数の配列と多くの誤った値が表示されます。それを行うための他のアプローチを見つけたいと思います。
これどうやってするの?
前もって感謝します。
filter
機能を使用してください:
{...state,currentMenu: action.menu.filter((menu) =>
state.currentCategoryId == menu.category_id)}
PS:以下の回答に同意します。Immutable.jsを使用することをお勧めします
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加