问题描述
在 React Native 中,我想在 onBlur
事件处理程序中传递 TextInput
的值.
In React Native, I want to pass the value of the TextInput
in the onBlur
event handler.
onBlur={(e) => this.validateText(e.target.value)}
e.target.value
适用于普通 React.但是,在 react-native 中, e.target.value
是未定义的.React Native 中可用的事件参数的结构是什么?
e.target.value
works for plain React. But, in react-native, e.target.value
is undefined. What is the structure of event args available in React Native?
推荐答案
在 React Native 中,你可以从 e.nativeEvent.text
获取 TextInput 的值.
In React Native, you can get the value of the TextInput from e.nativeEvent.text
.
不幸的是,这不适用于 multiline={true}
.解决此问题的一个技巧是维护对 TextInput
的引用,并通过组件的 _lastNativeText
属性访问文本值.例如(假设您已为 TextInput
组件分配了textInput"的引用):
Unfortunately, this doesn't work for multiline={true}
. One hack around this is to maintain a ref to your TextInput
and access the text value through the _lastNativeText
property of the component. For example (assuming you've assigned your TextInput
component a ref of "textInput"):
onBlur={() =>console.log(this.refs.textInput._lastNativeText)}
这篇关于调用 onBlur 时如何获取 TextInput 中的值?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!