React Native - 在Button onPress中访问'this'会导致应用崩溃

时间:2018-02-27 21:18:43

标签: reactjs react-native ecmascript-6

几天前我开始学习React Native,我一直坚持这个看似简单的问题。

我有一个注册表单,我只是在用户按提交后尝试将表单的值记录到控制台。问题是当我按下按钮时,应用程序会挂起大约一分钟然后崩溃。没有错误或日志,所以我不知道为什么它会崩溃,虽然我知道当我尝试在onPress函数中调用“this”时会发生这种情况。

以下是我的问题的一个简单例子:

import React, { Component } from 'react';
import { View, Button } from 'react-native';

export default class Home extends Component {
  render() {
    return (
      <View style={{flex: 1}}>
          <Button
            title="Submit"
            onPress={this.onPress}
          />
      </View>
    );
  }

  onPress = () => {
    console.log(this);
  }
}

运行此代码并按下按钮会导致我的应用崩溃。但是,将console.log(this)更改为console.log('test')会阻止应用崩溃。

我的两个问题是:

  • 在onPress函数中获取对“this”的引用的正确方法是什么?
  • 当我的应用崩溃时如何查看日志/错误?

1 个答案:

答案 0 :(得分:1)

尝试记录this可能会导致大量输出,甚至可能是周期性的。为什么需要打印整个对象?你能缩小范围吗?您的onPress方法使用类字段语法正确绑定到{{1}}。