📅  最后修改于: 2023-12-03 14:57:03.180000             🧑  作者: Mango
你正在参加一场React.js的技术测验,现在是第3组的第4个问题。以下是问题的详细描述:
React.js是一个流行的JavaScript库,用于构建用户界面。它的组件化架构和虚拟DOM机制使得开发者能够高效地构建复杂且高效的web应用程序。
你最近加入了一个新的React.js项目,你的团队在一个已有的组件上工作。该组件是一个简单的搜索框,用于在用户输入关键字后发起搜索。你注意到搜索框在用户点击搜索按钮之前并没有回调函数进行处理。
你的任务是:
请提供示例代码来解释你将如何实现以上功能。
首先,你需要为搜索框组件添加一个状态来保存用户的输入值。你可以使用useState
钩子来实现这个目标:
import React, { useState } from 'react';
function SearchBox({ onSearch }) {
const [keyword, setKeyword] = useState('');
const handleSearch = () => {
onSearch(keyword);
};
return (
<div>
<input type="text" value={keyword} onChange={(e) => setKeyword(e.target.value)} />
<button onClick={handleSearch}>Search</button>
</div>
);
}
export default SearchBox;
在上面的代码中,我们使用了useState
钩子来定义一个名为keyword
的状态,并使用setKeyword
函数来更新它的值。每当用户在搜索框中输入内容时,onChange
事件将被触发,并将输入框的当前值作为参数传递给setKeyword
函数。
在handleSearch
函数中,我们调用了传入组件的onSearch
回调函数,并将当前搜索框的值作为参数传递给它。这样,当用户点击搜索按钮时,就会触发搜索事件,并将搜索框的值传递给回调函数。
最后,我们将输入框的值和搜索按钮渲染到组件中,并将handleSearch
函数绑定到搜索按钮的onClick
事件上。
在这个问题中,你学会了如何为React.js组件添加一个回调函数,并在用户操作时调用它。你使用了React.js的状态管理器——useState
钩子来保存搜索框的值,并将它作为参数传递给回调函数。这样,你的团队现在可以在用户点击搜索按钮后获取搜索框的值,并执行相应的搜索操作。
希望这个解决方案对你有帮助!在React.js的旅程中继续前进吧!