如何过滤单位列表中的项目?

时间:2019-05-10 20:16:41

标签: react-native native-base

所以我有两个数组category: ["All","First","Second"]cards: [ { id: 1, icon: require("../../../assets/logo.png"), title: 'Title', category: 'First', }, { id: 2, icon: require("../../../assets/logo.png"), title: 'Second Title', category: 'Second', } ]以及一个选择器来选择一个category

我想做的是呈现一个Flatlist,其中显示了使用Picker选择的项目。基本上,有些过滤器/类别。

我该怎么办?

1 个答案:

答案 0 :(得分:0)

您可以处于一种状态,该状态存储了当前选定的category,然后使用选定的类别来过滤cards

例如

state = {
  selected: 'All',
  data: cards,
}

setCategory = (newCategory) => {
  const newData = tab === 'All'
    ? cards
    : tab === 'First'
      ? cards.filter(i => i.category === 'First')
      : cards.filter(i => i.category !== 'Second')
  this.setState({ selected: newCategory, data: newData })
}

render() {
 return (
  <FlatList data={data} extraData={selected} />
 )
}

这只是解决方案之一,有很多解决方法。