我试图在FiveDayWeather类的构造函数中调用getWeather()。我将函数绑定到类的上下文,但是当我尝试在构造函数中调用该函数时,它会出错。

我试过了:

this.getWeather()


而当这不起作用时:

getWeather()


但这也不起作用

我如何从此类内部调用getWeather函数?

class FiveDayWeather extends React.Component {
  constructor(props) {
    super(props)

    this.state = {
      error: null,
      isLoaded: false,
      days: []
    }

    this.getWeather = this.getWeather.bind(this)

    getWeather()


    console.log(this.state);
  }

  getWeather() {
    axios.get(URL)
      .then(function(response) {
        this.setState({
          days: response
        })
      })
  }

  render() {
    return(
      <div>Placeholder</div>
    )
  }
}


这与从异步调用返回响应无关

最佳答案

根据您的注释:


  我正在尝试在构造函数内部调用getWeather()


它在构造函数中不起作用。将其放在componentDidMount()生命周期方法中,例如

componentDidMount(){
  this.getWeather();
}


根据您在下面的评论,像这样更新promise:

  getWeather() {
    axios.get(URL)
      .then((response) => {
        this.setState({
          days: response
        })
      })
  }


箭头函数应为您绑定this的上下文

09-25 16:53