我整天都在搜索,但是找不到解决我问题的方法。 我是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;
})
});
}
我确信这不是最好的方法,因为它不起作用。.希望您能理解我想说的话。
谢谢
答案 0 :(得分:2)
由于您似乎正在使用products
属性来填充模板,因此请考虑使用一个单独的变量,这样您在进行过滤时就不必弄乱状态。也许这会有所帮助:
displayProducts = []
onPressFirstButton () {
this.displayProducts = this.state.products.filter(product => /* logic */)
}