我正在创建一个包含输入框的组件,当用户按下 Enter 键或点击搜索按钮时,它会将用户重定向到新选项卡。搜索按钮功能正常,但我无法让输入框在按下 Enter 键时调用 handleSubmit 方法。目前按下 Enter 键不起作用。我该如何实现这一点? 代码:
const LinkCard = (props) => {
const [searchInput, setSearchInput] = useState("");
const handleChange = (e) => {
setSearchInput(e.target.value);
};
const handleClick = (e) => {
e.preventDefault();
location.assign("http://www.mozilla.org");
};
const handleSubmit = (e) => {
e.preventDefault();
location.assign("http://www.mozilla.org");
};
return (
<Flex borderWidth="1px" borderRadius="lg" alignItems="center">
{props.icon}
<Box>{props.websiteName}</Box>
<InputGroup>
<Input
placeholder={"Search " + props.websiteName}
onChange={handleChange}
onSubmit={handleSubmit}
flexGrow="1"
m="2%"
/>
<Link href={props.url} passHref={true}>
<a>
<InputRightElement m="2%">
<Button onClick={handleClick}>
<FaSearch />
</Button>
</InputRightElement>
</a>
</Link>
</InputGroup>
</Flex>
);
};