过滤反应原生数据

Posted

技术标签:

【中文标题】过滤反应原生数据【英文标题】:Filter React Native Data 【发布时间】:2019-02-07 11:56:36 【问题描述】:

我搜索了一整天,但没有找到解决问题的方法。 我是 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】:

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

displayProducts = []

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

【讨论】:

非常感谢本!我不知道为什么我没有想到这一点.. 当然!很明显... :-)

以上是关于过滤反应原生数据的主要内容,如果未能解决你的问题,请参考以下文章

如何在反应原生中过滤FlatList中的项目

如何在反应原生中过滤多个选择下拉字段中的数组值

过滤搜索结果反应

反应、获取 API 和过滤数据

通量/反应:如何处理商店中过滤的 api 数据

更新多个相关的 selectizeInput() 控制通过这些输入选择过滤的反应数据集