Hah, lassen Sie mich zuerst sagen, ich hasse Sie für das Stellen dieser Frage! Du hast mich gezwungen, die Antwort herauszufinden :)
Ich glaube, das ist in der Geschichte verwurzelt, da es von iOS stammt, das das native Ereignis UIControlEventEditingDidEnd
hat. Das ist wahrscheinlich die Namensgebung vor blur
wurde als eine Abstraktion eingeführt.
TL: DR;
onEndEditing
sollte meiner Meinung nach wirklich veraltet sein, aber von jetzt an sollten Sie es verwenden, weil es die plattformunabhängigste Version von Unschärfe ist. Siehe unten.
Beide onBlur
und onEndEditing
erhalten ein Ereignis. Auf iOS scheinen beide genau dasselbe zu tun, und das Ereignis hat den nativen Text. In Android gibt es zwei verschiedene Ereignisse, von denen nur eines Zugriff auf den Text hat. Für mich scheint das ein Fehler zu sein.
Beachten Sie die Unterschiede zwischen Android onEndEditing und Android onBlur.
// this is undefined on Android
onBlur={(e) => alert(e.nativeEvent.text)}
Also, wenn Sie den Text während einer Unschärfe zu lesen, erhalten Sie plattformübergreifende Nutzbarkeit mit onEndEditing
für jetzt.
this rnplay sehen Sie die Unterschiede in OS
Es gibt einen Unterschied zwischen onSubmitEditing. Das onSubmitEditing wird nicht aufgerufen, wenn multiline = true ist. – vijayst