当前位置:  开发笔记 > 编程语言 > 正文

如何过滤反应中的状态数组?

如何解决《如何过滤反应中的状态数组?》经验,为你挑选了1个好方法。

我有订单减速机,它有很多州.

const initialState = {
 channel: null,
 order: {},
 fetching:true,
 menu: [],
 categories: [],
 subcategories: [],
 currentCategoryId: 1,
 currentSubcategoryId: 5,
 currentMenu: [],
};

我想要过滤的是menu.menu是状态的阵列,其具有对象menu_item我有currentCategoryIdcurrentSubcategoryId.我想对这些状态做的是通过使用currentCategoryIdcurrentSubcategoryId过滤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;}}

所以要做到这一点,我做了上面的代码.即使它返回一些过滤值,它也会显示具有许多错误值的相同数量的数组.我想找到其他方法来做到这一点..

我怎样才能做到这一点?

提前致谢.



1> Ilya Lyamkin..:

请使用filter功能:

{...state,currentMenu: action.menu.filter((menu) =>
state.currentCategoryId == menu.category_id)}

PS:我同意以下的答案,最好使用Immutable.js

推荐阅读
Life一切安好
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有