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

React:如何将点击的搜索结果填充到Input输入框中

修正后可运行的完整代码

import React from 'react';
// 此处Input为你项目中使用的输入组件,可保留原有引入逻辑
const SearchDemo: React.FC = () => {
  const [searchTerm, setSearchTerm] = React.useState<string>('');
  const [results, setResults] = React.useState<string[]>([]);

  // 接收点击的搜索结果作为入参
  const handleClick = (targetResult: string) => {
    setSearchTerm(targetResult);
  };

  React.useEffect(() => {
    // 此处补全你的搜索逻辑,例如输入关键词后调用接口获取结果,更新results数组
  }, [searchTerm]);

  return (
    <>
      <Input
        onChange={(event) => setSearchTerm(event.target.value)}
        value={searchTerm}
        type="search"
      />
      {results.length > 0 && (
        <div className="search-result-wrap">
          {results.map((result, index) => (
            <div key={index}>
              <div onClick={() => handleClick(result)}>{result}</div>
            </div>
          ))}
        </div>
      )}
    </>
  )
}

原代码存在的问题:

  • 状态更新函数拼写错误:setSearcTerm缺少字母h,正确调用名为setSearchTerm
  • 点击处理逻辑缺失参数:原handleClick没有接收被点击的搜索结果值,始终赋值当前输入框的searchTerm,不会产生内容更新,需要在绑定点击事件时传入当前遍历的result
  • 多处语法不完整:useEffect未补全依赖数组与闭合括号,搜索结果渲染区域的JSX括号未正确配对,会直接触发编译报错

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.22 03:36:04