【问题标题】:Filtering flatilist with several items过滤包含多个项目的平面列表
【发布时间】:2021-01-08 08:40:22
【问题描述】:

我正在通过构建 RideSharing 应用来学习 React Native。我有一个功能,允许用户过滤具有多个乘车的FlatList 组件,每个组件都有不同的items 相关联,例如日期、乘客人数、成本等......和filteredDate, filteredPassangers、filteredCost 是状态变量,允许用户选择他希望如何过滤。

我写了这样过滤数据的函数:

function filter() {
        const newData1 = lists.filter(
            item => {
                return item.date === filteredDate,
                   item.To === filteredTo,
                   item.passangers === filteredPassangers,
                   item.date === filteredDate,
                   item.cost3 === filteredCost  
            })  
         props.setLists(newData1),  


        //... 
    }

但是,当我更改多个变量的状态时,它不会像以往那样返回任何骑行组件。

如何编写代码以便一次过滤多个项目?

【问题讨论】:

    标签: reactjs react-native filter react-native-android flatlist


    【解决方案1】:

    在比较语句中,您已用逗号分隔它们。这样,只有最后一条语句被评估,即 item.cost3 === filteredCost

    您可以像这样使用or ( || ) 运算符过滤它们

    
    item.date === filteredDate ||
    item.To === filteredTo ||
    item.passangers === filteredPassangers ||
    item.date === filteredDate ||
    item.cost3 === filteredCost
    
    

    这样,如果您的任何条件为真,它将返回真。

    【讨论】:

    • 好吧,我不知道这个。但是当我尝试同时过滤两个值并且其中一个值不存在时,它仍然返回第一个值为 true 的组件。我该如何更改?
    • 你可以在每个条件下做这样的事情(item.date && item.date ===filteredDate)
    • 我换了它,效果还是一样。另外,每当我按成本状态过滤时,它都会简单地显示任何内容......你知道为什么吗?
    • 你能创建一个沙箱以便我调试你的代码吗?
    • 先生,我该如何创建沙盒?
    猜你喜欢
    • 1970-01-01
    • 2015-01-06
    • 1970-01-01
    • 2015-11-23
    • 2023-03-19
    • 2019-11-28
    • 2011-08-13
    • 2020-05-02
    相关资源
    最近更新 更多