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

使用react-search-autocomplete组件无法显示在线用户结果,求排查

解决react-search-autocomplete无法展示自定义数组结果的问题

你的代码存在两个关键问题,导致组件无法正确展示搜索结果:

问题1:组件默认搜索字段不匹配

react-search-autocomplete组件默认会根据name字段进行搜索匹配,但你的onlineUsers数组中存储用户名的字段是username,这直接导致搜索时无法匹配到任何结果。

问题2:格式化结果时字段引用错误

formatResult函数中你尝试渲染item.name,但你的数据对象里只有username字段,即使后续搜索逻辑修复,结果展示也会出现异常。


修复步骤

1. 指定组件的搜索字段

在ReactSearchAutocomplete组件中添加fuseOptions配置,明确告诉组件要基于username字段进行搜索:

<ReactSearchAutocomplete
  items={onlineUsers}
  onSearch={handleOnSearch}
  onHover={handleOnHover}
  onSelect={handleOnSelect}
  onFocus={handleOnFocus}
  autoFocus
  formatResult={formatResult}
  // 添加该配置指定搜索字段
  fuseOptions={{ keys: ["username"] }}
/>

2. 修正格式化函数的字段引用

将formatResult中的item.name改为item.username:

const formatResult = (item) => {
  return (
    <>
      <span style={{ display: 'block', textAlign: 'left' }}>name: {item.username}</span>
    </>
  )
}

修改完成后,在输入框中输入"Asd"即可看到对应的用户结果,同时handleOnSearch的控制台输出也会显示匹配到的结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 19:15:43