【发布时间】:2021-01-16 16:51:43
【问题描述】:
我正在一个已经开始使用 React 类版本的项目中工作。我计划使用 react 钩子,所以不要重构所有类,因为我编写新代码,我正在尝试混合这些反应版本(如果这是一个好主意,我应该重构所有)。
我正在创建一个带有分页和搜索的列表。分页和搜索在一个独特的组件中。
这个组件需要传递用户输入的搜索字符值,这就是我遇到问题的地方。 换句话说,我需要向父组件传递一个值。
代码如下:
useState 钩子:
const [search, setSearch] = useState('');
过滤器组件,改变search值:
const Filter = () => {
return (
<Card>
<Form.Group label="Filtro">
<Grid.Row gutters="xs">
<Grid.Col>
<Form.Input
name='search'
placeholder='Filtro'
autoFocus
value={search}
onChange={e => setSearch(e.target.value)}
/>
</Grid.Col>
<Grid.Col auto>
<Button
color="success"
icon="search"
onClick={filtrar}
>
</Button>
</Grid.Col>
</Grid.Row>
</Form.Group>
</Card>
);
}
function getSearchDB() {
setSearch((search) => {
return search;
})
}
分页组件,接收道具:
<Pagination
baseUrl={'vehicles/toUse'}
updateState={setStateDB}
getSearch={getSearchDB}
fields={'license_plate'}
/>
通过Pagination组件打印search值:
console.log(this.props.getSearch()) //print undefined
OBS: updateState={setStateDB} 工作正常。
为完成这项工作所做的事情(没有成功):
-
在
getSearch={getSearchDB}中直接传递搜索值。结果:this.props.getSearch()打印未定义 -
将 getSearchDB() 定义为:
函数 getSearchDB() { 返回搜索; }
结果:this.props.getSearch() 打印未定义。
有没有办法让它发挥作用?
伙计们,如果帖子混乱或英语写得不好,请告诉我。
【问题讨论】:
标签: node.js reactjs react-component use-state