如何解决React-Native 防止键盘关闭状态更新
如果状态为假,我有一个按钮被禁用,如果数组中的每个项目不满足某些条件,则状态会更改,其中一个条件是文本字段应包含某些内容,我检查该条件每次文本更改时。条件有效,但每次我更改状态时,键盘都会关闭。即:每次我输入或删除单词的第一个字母。
const [canSave,setCanSave] = useState<boolean>(true);
//this function is called each time one of the textfield is changed
const updateCanSave = () => {
for (let i = 0; i < currentSteps.length; i++) {
const step = currentSteps[i];
if (
(step.name.length > 0 && step.media === undefined) ||
(step.name === "" && step.media !== undefined)
) {
setCanSave(false);
break;
}
setCanSave(true);
}
};
return (
//the flatList renderItem contains many textfield and imagePicker
<FlatList
data={array}
...
ListFooterComponent={
<Button on Press={save} disable={!canSave}>Save</Button>
}
/>
)
解决方法
虽然你不能这样做,但有办法完成它。
1) 您可以为输入字段设置 autoFocus={true}
。但是,这有点小毛病。每次更改后键盘仍然关闭,但在此之后很快打开但不是那么好。
2) 创建一些其他字典(状态除外)并将不同输入字段的值存储在其中,并在输入字段失去焦点时更改状态(您可以使用 {{ 1}} 输入字段的道具)。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。