我正在用React(Native)构建一个简单的组件,并注意到我的代码有一个问题。假设,我们有一个状态,它将在页面上为我们的搜索值提供可靠性:
const [searchValue, setSearchValue] = useState('')
我们有一个TextInput
组件(web上的input
),它有以下属性:
<TextInput
value={searchValue}
onChangeText={onChangeText}
onSubmit={onSubmit}
onPressClear={onPressClear}
/>
这里我们定义函数:
const onSubmit = () => {
console.log('searchValue is:' + searchValue)
callApi(searchValue)
}
const onChangeText = (text: string) => {
setSearchValue(text)
}
const onPressClear = () => {
onChangeText('')
onSubmit();
}
现在,这个组件几乎可以正常工作了,但是我想在清除搜索后请求API调用,并且在完成后调用submit函数。显然,此时状态不会被更新,因为状态在提交函数中没有被更改。当我按下清除按钮时(如果我在searchValue
中有东西),我不会得到一个清除状态。
在useEffect
中使用searchValue
依赖项 Package 状态并调用submit函数对我们来说并不好,因为我们只想跟踪提交。
当我们清除状态时,在提交函数中得到空的searchValue
的正确解决方案是什么?
1条答案
按热度按时间7gcisfzg1#
试试这个: