JSX回调函数中的值

时间:2019-04-02 18:14:21

标签: javascript react-native

根据

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/this

在嵌入式事件处理程序中引用this时,会将其设置为放置侦听器的DOM元素。

但是,在react native中,我注意到,当“ this”被内联传递到JSX事件处理程序时,它被设置为容器类(以及对象)的范围。

造成这种差异的原因是什么?

javascript中的内联事件处理程序:

<button onclick="console.log(this)">
  Show this
</button>

控制台记录按钮对象。

react native中JSX中的内联事件处理程序:

class App extends Component {

  testFunction = ()=> {console.log('test')}
  render() {
    return (
      <View
        <Button onPress={this.testFunction} />
      </View>
    );
  }
}

这确实属于App对象的范围,因为确实调用了testFunction。为什么没有将this设置为Button对象(这将使testFunction未定义)?

0 个答案:

没有答案