React Native - onChangeText和onSubmitEditing有什么区别?

9
从Facebook React Native的文本输入框的文档中,我发现当使用onSubmitEditing时会发生什么:
“当文本输入框的提交按钮被按下时调用的回调函数。”
然而,并没有针对onChangeText的说明。我猜想如果文本已更改,则会触发它。
为什么我要使用其中一个而不是另一个?例如,如果我正在制作接受TextInput字段文本的东西,难道不只需要使用onChangeText吗?在一些示例中,他们使用了onSubmitEditing,我不明白为什么要使用一个而不是另一个。这个问题与如何制作提交按钮不同——我想知道为什么要使用onChangeTextonSubmitEditing之一。

2
@RIYAJKHAN 我不确定我的问题与建议的问题重复,因为我正在询问onChangeTextonSubmitEditing之间的区别,而那个线程则询问如何为onSubmitEditing创建提交按钮。 - m1771vw
你的假设是正确的。每次TextInput中的文本发生更改时,都会调用onChangeText,但这也意味着每一次。因此,例如要实现类似建议搜索的功能,每次文本更改时数据都会进行过滤。一个好的解决方案是防抖动文本更改事件,以便在500毫秒的超时后进行过滤。 - Nemi Shah
3个回答

14

onSubmitEditing会在点击文本输入提交按钮(键盘按钮)时触发。

onChangeText在文本输入框中输入任何符号时触发。

例如,如果您需要在每次按键时进行某些验证,则需要使用onChangeText;如果需要在完成输入后触发验证,则需要使用onSubmitEditing

在您的示例中,您将在两种情况下实现所需的功能。


3

onSubmitEditing是当你点击下面截图中的按钮时的回调函数。

onSubmitEditing

onChangeText是当你在中输入任何内容时的回调函数。


1

1: onSubmitEditing

onSubmitEditing:当您想要提交文本字段的编辑并调用某些操作(例如关闭移动键盘或调用提交操作或 API 以传递当前屏幕数据)时,可以使用它。

简而言之,当您完成向字段添加文本并希望执行一些操作以进入下一个屏幕时,可以使用它。

只有在按下键盘按钮时才会调用它。例如,当我们按 GO、RETURN、Search 键时。

2: onChangeText

onChangeText:它通常用于更新 TextInput 的值,就像 Reactjs 中的 onChange 事件一样,以更新组件的状态。

每当字符改变时就会调用它。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接