过滤React Native数据

时间:2018-09-01 22:15:51

标签: arrays reactjs api react-native fetch

我整天都在搜索,但是找不到解决我问题的方法。 我是React Native的新手,所以卡住了...

这是我的问题:

我获取要获取数据的api,我正在使用axios进行操作,可以渲染我的组件了!

然后,我不想显示阵列的所有项目,但是我想通过2个按钮根据不同的值显示一些项目:

<Button onPress={Get ALL ITEMS with this value}/>
<Button onPress={Get ALL ITEMS with ANOTHER VALUE} />

我的问题是我正在用新信息修改阵列“产品”的状态,但这不是我想要的。我一直希望我根据数组中的特定值显示信息,而仍然获得我的完整数组...

这是我正在做的一些代码:

onPressFirstButton() {
let newArray = [...this.state.products];

this.setState({
  products: newArray.filter(function(product){
    return product.value == 32;
  })
});
}
onPressSecondButton() {
let otherArray = [...this.state.products];

this.setState({
  products: otherArray.filter(function(product){
    return product.other_value == 389;
  })
});
}

我确信这不是最好的方法,因为它不起作用。.希望您能理解我想说的话。

谢谢

1 个答案:

答案 0 :(得分:2)

由于您似乎正在使用products属性来填充模板,因此请考虑使用一个单独的变量,这样您在进行过滤时就不必弄乱状态。也许这会有所帮助:

displayProducts = []

onPressFirstButton () {
  this.displayProducts = this.state.products.filter(product => /* logic */)
}