React - 无法重置搜索结果

时间:2018-02-15 20:14:06

标签: reactjs filter

我相信这是一个菜鸟问题,但我发现这个问题的例子搞砸了我到目前为止的代码。

在以下函数中,value是我在搜索栏中输入内容的结果。

this.setState({articles: !this.state.input
    ? false
    : this.state.articles.filter(
        (article) => {
            return article.title.toLowerCase().indexOf(this.state.input.toLowerCase()) !== -1;
        })
 });

此代码可以正常过滤,但问题是,当我从搜索栏中删除所有内容时,它不会重置过滤器结果,我发现自己有一个空数组,我必须重新加载页面把一切都归还。

我试图确保this.state.input不是空的,但到目前为止还没有工作

我该如何解决这个问题?

更新:我用我的尝试更新了我的问题

提前谢谢

1 个答案:

答案 0 :(得分:2)

您获得的输入值可能为null或未定义。你可以添加一个条件,在函数中它将检查值是null / undefined还是空字符串它将只返回所有文章。

此外,您将所有文章存储在this.state.article中,然后在过滤后使用过滤的文章设置相同的状态。下次过滤时,它将仅过滤过滤的文章。因此,您需要将所有文章存储在某处,然后具有filteredArticles状态。