这里我有状态,我正尝试将它们传递给子组件SearchBar
- 应用程序组件(父组件)**
// not related code ...
// search
const { search, setSearch } = useState("");
const handleSearch = (e) => {
setSearch(e.target.value);
};
// not related code ...
return (
<ContextProviders
// not related code ...
>
<div className="App">
<Navbar />
<SearchBar search={search} handleSearch={(e) => handleSearch(e)} />
<Outlet />
</div>
</ContextProviders>
);
}
在SearchBar中,当我键入一些内容以触发setState时,它显示了一个错误:
- 搜索栏(子组件)**
import { useState } from "react";
export default function SearchBar(props) {
// not related code ...
console.log(props);
return (
<>
<div>
<input
type="search"
value={props.search}
onChange={props.handleSearch}
// not related code ...
/>
</div>
</>
);
}
我需要将搜索组件(子组件)中输入字段的值获取到应用程序组件(父组件)中,我尝试将设置状态的函数传递到应用程序中,但它不起作用,我得到错误:
未捕获的类型错误:setSearch不是handleSearch处的函数
有人看出问题所在了吗?
2条答案
按热度按时间yhqotfr81#
应将状态初始化为:
然后像这样传递
handleSearch
函数:mctunoxg2#
为什么在handleSearch中传递匿名箭头函数?你只需要指向handleSearch函数,不需要调用它。