用几个项目过滤扁平化列表

Filtering flatilist with several items

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

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

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),  


        //... 
    }

但是,当我更改多个变量的状态时,它不会 return 任何骑行组件。

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

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

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


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

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