控制台无法记录状态

时间:2019-06-19 04:21:29

标签: javascript console.log react-state-management

尝试从状态到控制台记录信息会返回错误“未定义不是对象(正在评估'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);
  };

我只希望控制台记录分配给userName的任何内容,即'User Name'

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

3 个答案:

答案 0 :(得分:0)

找到解决方案(19/06/26):

onPress={this.login.bind(this)} or onPress={() => this.login()}

发现者:Chris G

答案 1 :(得分:-1)

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

console.dir( this.state );

它将把对象的可扩展视图转储到控制台,这样您就可以查看其中的内容和属性。

答案 2 :(得分:-1)

您可以使用setState来更改组件中的状态。 注意:setState是异步函数