在过滤数组之后,.map不是一个函数

时间:2017-08-16 06:34:07

标签: reactjs loops filter

我在React中有一个对象列表。我可以.map对象。但我不想要它们。我需要根据属性进行过滤。所以我这样做:

const myFilteredList = myList.filter((item) => {
    return item.name === 'the filter';
  });

一旦我这样做,我无法映射myFilteredList

Uncaught (in promise) TypeError: myFilteredList.map is not a function

我理解这意味着它现在是一个对象而不是数组,所以我尝试了这个,旨在将其转换为数组:

let theArray = []
theArray = Object.keys(resultCampaigns).map(key => resultCampaigns[key]);

但我仍无法映射theArray

这样做的正确方法是什么?

1 个答案:

答案 0 :(得分:0)

答案最终与我试图做的事情无关,但我会在这里发布,以便其他人可以看到。我试图在我的问题中提出的事情将起作用。他们没有为我工作,因为我通过这样做在myFilteredList设置了render()的价值:

const myFilteredList = this.state;

我认为这会覆盖我的过滤数组。不要那样做。我删除了上面的代码行,现在没关系。我只是通过

来访问数组
this.state.myFilteredList

而不仅仅是myFilteredList

编辑:

我的真正问题在下面的评论中列出。我只是忘记了const { myFilteredList } = this.state;中的花括号我已经更新了我的代码以反映这个微小的变化,现在它很好。