Javascript 控制台无法记录状态

Javascript 控制台无法记录状态,javascript,console.log,react-state-management,Javascript,Console.log,React State Management,尝试将信息从状态记录到控制台时,返回错误“undefined is not a object evaluation”this.state.userName 我对JS非常陌生,所以我真的不知道它是如何工作的,或者应该如何工作 我尝试将“this.state.userName”替换为 - (userName) => this.getState(userName) - this.state[userName] - 'this.state[1] 这些都没有达到预期的效果 这是我的密码:

尝试将信息从状态记录到控制台时,返回错误“undefined is not a object evaluation”this.state.userName

我对JS非常陌生,所以我真的不知道它是如何工作的,或者应该如何工作

我尝试将“this.state.userName”替换为

 - (userName) => this.getState(userName)
 - this.state[userName]
 - 'this.state[1]
这些都没有达到预期的效果

这是我的密码:

  constructor(props){
    super(props);
    this.state = {
      userName:'User Name',
      userEmail:'',
      loggedIn: false,
    };
  }

  login() {
    console.log(this.state.userName);
  };
我只想让控制台记录分配给用户名的任何内容,即“用户名”

通过以下方式调用登录:
onPress={this.login}

这是一种快速浏览对象的方法,您可能会看到导致问题的原因:

console.dir this.state;
它会将对象的可扩展视图转储到控制台,以便您可以查看其中的内容及其属性。

解决方案发现19年6月26日:

onPress={this.login.bind(this)} or onPress={() => this.login()}
发现人:

可能重复您需要在构造函数中将登录名与此绑定:this.login=this.login.bindthis如何调用登录名?我同意这看起来像是一个范围问题。换句话说,这可能不是您所认为的。onPress={this.login.bindthis}或onPress={=>this.login}