我有訂單減速機,它有許多州。如何過濾響應中的狀態數組?
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;}}
所以要做到這一點,我做了上面的代碼。即使它返回一些過濾的值,它也會顯示具有許多錯誤值的相同數量的數組。我想找到其他方法來做到這一點..
我該怎麼做?
在此先感謝。
爲什麼你認爲它是更好地使用Immutable.js?任何好處相比,只使用'過濾器'功能? –
使用immutable的主要原因是爲了避免昂貴的克隆整個對象。不可變的對象存儲只與以前的版本有所不同。它的工作速度更快,特別是在擁有大型狀態對象的大項目中你可以閱讀更多關於好處[這裏](http://stackoverflow.com/questions/39227832/advantages-of-using-immutable-js-over-object-assign-or-spread-operators) –