我有订单减速机,它有很多州.
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