【问题标题】:React: How to populate the Input field with one of the traversed searched value?React:如何使用遍历的搜索值之一填充输入字段?
【发布时间】:2021-07-29 12:42:54
【问题描述】:

当点击其中一个搜索结果时,我正在尝试使用显示的搜索值填充输入字段。

我对 React FC 和 Typescript 还很陌生。我不确定具体是如何完成的。这是我尝试使用点击处理程序的方法,但点击处理程序不会使用正在点击的值填充输入字段。

  const [searchTerm, setSearchTerm] = React.useState<string>('');

  const [results, setResults] = React.useState<string[]>([]);


 const handleClick = () => {
setSearcTerm(searchTerm);
  };

React.useEffect(() => {}

return(

 <Input
    onChange={(event) => setSearchTerm(event.target.value)}
    value={searchTerm}
    type="search"
  />

{results.length > 0 && (
{results.map((result, index) => (
  <div key={index}>
    <div onClick={handleClick}> {result}</div>
  </div>
))}    
)

【问题讨论】:

  • 你有什么问题?
  • 您的意见在哪里?您能否分享更多代码,以便可以理解问题的上下文?
  • 用输入代码更新了问题。

标签: reactjs typescript react-functional-component react-tsx


【解决方案1】:

目前您没有传递任何要设置为 searchTerm 的输入值。

你可以这样做:

const handleClick = (input:string) => {
  setSearcTerm(input);
};
return(

 <Input
    onChange={(event) => setSearchTerm(event.target.value)}
    value={searchTerm}
    type="search"
  />

{results.length > 0 && (
{results.map((result, index) => (
  <div key={index}>
    <div onClick={()=>handleClick(result)}> {result}</div>
  </div>
))}    
)

【讨论】:

  • 非常感谢!我在 handleClick = (input) 上收到类型错误。参数输入给出错误。它的类型应该是“任何”吗?
  • 不...您应该添加一个类型...它是一个字符串添加如下:const handleClick = (input : string) =&gt;{} 抱歉...忘记在答案中添加类型。
  • 很高兴为您提供帮助 :) ...如果它回答了您的问题,请点赞。
  • 一旦我拥有投票权,我就会这样做。显然我还不是成年人,有 13 分 ;)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-10-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-25
  • 2018-06-06
  • 1970-01-01
相关资源
最近更新 更多