首页 > 解决方案 > 过滤字符串数组并返回初始状态

问题描述

我有字符串数组,由于输入值,我需要过滤这个数组。我通过过滤器功能过滤它,但是当我清除输入时,数组保持过滤状态。如何获得初始数组?

filterCoins = (e) => {
        let updatedList = this.state.data;
        updatedList = updatedList.filter(function(item){
            return item.toLowerCase().search(
                e.target.value.toLowerCase()) !== -1;
        });
        this.setState({data: updatedList});
    };

标签: javascriptreactjs

解决方案


解决方案取决于您如何获取初始数据。

如果它来自props,最好将其state用于填充filteredList

updatedList = this.props.data.filter(function(item){
    return item.toLowerCase().search(
        e.target.value.toLowerCase()) !== -1;
});

如果它是自包含状态组件,则使用类变量this.data来存储初始数据过滤搜索到的项目this.data

updatedList = this.data.filter(function(item){
    return item.toLowerCase().search(
        e.target.value.toLowerCase()) !== -1;
});
this.setState({data: updatedList});

所以建议总是从原始列表中过滤出来。


推荐阅读