反应native - nativeEvent属性?

时间:2017-06-15 15:45:20

标签: javascript reactjs react-native

因此,我试图将自己的头脑包裹起来反应原生并且看起来并不困难。

我的问题很简单,什么是" e"对象如何使用其属性,例如" e.nativeEvent"和" e.nativeEvent.text" ,以及在什么情况下?

当我测试 TextInput' onChangeText onBlur 道具时,我偶然发现了这个对象。

如下所示,我能够传递一个名为" value"的参数参数。在 onChangeText 道具中,回调处理程序。 但是当我尝试对 onBlur 做同样的事情时,我遇到了问题(我检查了文档,其中没有提到任何关于传递给回调函数的参数的内容处理程序,与 onChangeText 不同。

所以我找到了这个question,它帮助我弄清楚如何使用e.eventNative.text属性访问TextInput中的数据。

  render(){
return(
  <View>
  <Text>indent</Text>
  <Text>indent</Text>

    <TextInput
      style={{height:60, backgroundColor: "#ededed"}} // must define a height for T.I in iOS
      placeholder="Enter Text"
      value={this.state.textValue}
      onChangeText={(value) => this.onChangeText(value)}
    />
    <Text>{this.state.textValue}</Text>

    {/* on submit editing, will find the callback function to transfer text
     when submitting button is pressed */}
    <TextInput
    style={{height:60, backgroundColor: "skyblue"}}
    placeholder="Enter Text"
    onBlur={(value) => this.onSubmit(value.nativeEvent.text)}

    />
    <Text>{this.state.textSubmitted}</Text>
  </View>
);

} }

1 个答案:

答案 0 :(得分:0)

onChangeText是TextInputs的特殊事件,其处理程序将TextInput的文本作为初始参数传递给其他事件(因此'value'='ev.nativeEvent.value')。

onBlur事件没有此功能。因此,您需要像平常一样访问TextInput的文本。