当前位置:  开发笔记 > Android > 正文

onEndEditing和onBlur之间的区别?

如何解决《onEndEditing和onBlur之间的区别?》经验,为你挑选了2个好方法。

React Native有一个TextInput组件来接受用户输入,我对它们之间的区别感兴趣

onEndEditing (callback that is called when text input ends)

的onblur (callback that is called when the text input is blurred)

是否有一个只有onBlur无法解决的场景,何时onEndEditing有用?



1> GantMan..:

哈,首先让我说我讨厌你问这个问题!你让我得去找答案:)

我相信这源于历史,因为它源于具有原生事件的iOS UIControlEventEditingDidEnd.这可能是之前的命名blur是作为抽象引入的.

TL:DR;

onEndEditing在我看来应该真的被弃用,但是现在你应该使用它,因为它是最平台无关的模糊版本.见下文.

两者onBluronEndEditing得到一个事件.在iOS上,这两者似乎完全相同,并且事件具有本机文本.在Android中,它是两个不同的事件,只有其中一个可以访问文本.对我来说,这似乎是一个错误.

请注意Android onEndEditing和Android onBlur之间的区别.

// this is undefined on Android
onBlur={(e) => alert(e.nativeEvent.text)}

因此,如果在模糊期间阅读文本,您现在可以获得跨平台的可用性onEndEditing.

请参阅此rnplay以查看操作系统的差异


“我相信这是源于iOS的历史,因为它起源于iOS”:React Native从一开始就是iOS专用的,所以这很有意义。

2> Martin Konic..:

看看iOS和Android的例子,似乎onEndEditing是要传递内容TextInput,而onBlur不是要传递任何数据:

iOS示例

Android示例

提出这些事件之间实际上存在差异.在这里,我们可以看到onEndEditing针对原生Android提出的onEditorAction,而onBlur不是.该操作可以是"搜索"(这对应于Android键盘上的特殊"搜索"图标),但我不知道React Native API允许您将这些操作图标显示为键盘的一部分.

一般来说,查看示例 /实现是理解未充分记录的内容的好方法.

如果JS文档中不清楚,请提交拉取请求以澄清它.如果实现执行的操作没有意义或平台之间不一致,请提交拉取请求以修复实现.这应该有助于其他人.

推荐阅读
郑谊099_448
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有