【问题标题】: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;
  })
});
}

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

谢谢

【问题讨论】:

    标签: arrays reactjs api react-native fetch


    【解决方案1】:

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

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

    【讨论】:

    • 非常感谢本!我不知道为什么我没有想到这一点.. 当然!很明显... :-)
    猜你喜欢
    • 2016-10-18
    • 1970-01-01
    • 2018-07-04
    • 1970-01-01
    • 2017-09-24
    • 2020-04-22
    • 1970-01-01
    • 2019-03-19
    • 2017-10-26
    相关资源
    最近更新 更多