You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React搜索过滤功能无匹配结果时如何添加错误提示

React 搜索无匹配结果提示实现方案

实现逻辑:

  • 拆分过滤与列表渲染逻辑,先单独获取过滤后的原始数据数组,用于判断匹配结果数量
  • 增加双重条件判断:仅当过滤结果为空、且用户输入了有效搜索词时,才渲染无结果提示,避免初始加载时误触发提示

修改后的完整代码如下:

export default class Search {
  // 其余原有逻辑保持不变
  search = (event) => {
    let word = event.target.value;
    this.setState({ search: word });
  };

  render() {
    const searchWord = this.state.search?.toLowerCase().trim() || ''
    // 先单独做过滤,不直接链式调用map
    const filteredData = data.filter((item) => {
      if (!searchWord) return true
      return item.name.toLowerCase().includes(searchWord)
    })
    // 再把过滤后的数据映射为渲染节点
    const datas = filteredData.map((item) => {
      return (
        // 建议补充唯一key属性,避免React列表渲染警告
        <div key={item.id}>
          <p>{item.name}</p>
        </div>
      );
    });

    return (
      <div>   
        <input
          type="text"
          placeholder="Search"
          onChange={this.search}
        />
        {/* 条件渲染:有结果渲染列表,无结果且有搜索词时显示提示 */}
        {filteredData.length ? (
          datas
        ) : searchWord ? (
          <p style={{color: '#f5222d'}}>未找到匹配的搜索结果,请调整关键词后重试</p>
        ) : null}
      </div>
    );
  }
}

你可以根据需求自行调整提示文案、样式,也可以替换为自定义的提示组件。

内容的提问来源于stack exchange,提问作者aish

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 11:15:04