axios.then(res => {console.log(this)})打印未定义

时间:2019-05-19 22:08:03

标签: javascript reactjs axios

我正在尝试在axios调用后设置状态。在then子句中,我一直试图用this.setState({...})设置状态,但这在这里未定义。

为什么console.log(this)在控制台中打印“未定义”?

  clickButton() {
    let data = {
      username : document.querySelector('#email').value,
      password : document.querySelector('#password').value
    };

    axios.post('http://127.0.0.1:8000/api/login_check', data, {
      headers: {
        'Content-Type' : 'application/json',
      }
    })
    .then(res => {
      console.log(this)
    })
  }

2 个答案:

答案 0 :(得分:1)

最明显的原因是,由于clickButton函数不是箭头函数,因此您必须忘记将函数绑定到构造函数中。或者,将clickButton切换为箭头功能,就可以了。

答案 1 :(得分:0)

尝试以下代码将其绑定到点击按钮功能

clickButton =()=> { .... }