Javascript 在componentDidMount()中调用函数时出现问题

Javascript 在componentDidMount()中调用函数时出现问题,javascript,reactjs,Javascript,Reactjs,我是React.js的新手,我很难通过另一个类的静态函数调用来分配我的状态。此代码: componentDidMount() { this.setState(() => ({ movies: MovieService.getMovies() })); } 不设置我的状态。我相信问题在于我对异步函数的使用,因为如果我使用console.logMovieService.getMovies,它会显示Promise{}。但是,我仍然对如何解决这个问题感到困惑,谢谢你的帮助 您的代码将把状

我是React.js的新手,我很难通过另一个类的静态函数调用来分配我的状态。此代码:

componentDidMount() {
    this.setState(() => ({ movies: MovieService.getMovies() }));
}

不设置我的状态。我相信问题在于我对异步函数的使用,因为如果我使用console.logMovieService.getMovies,它会显示Promise{}。但是,我仍然对如何解决这个问题感到困惑,谢谢你的帮助

您的代码将把状态的movies字段设置为Promise对象,表示调用MovieService.getMovies返回的挂起承诺

尝试对代码进行以下调整以解决问题,方法是首先解决承诺,然后将结果分配给组件状态:

componentDidMount() {

    MovieService.getMovies().then((movies) => {

        this.setState({ movies: movies });
    })
}

您的代码将把状态的movies字段设置为Promise对象,表示调用MovieService.getMovies返回的挂起承诺

尝试对代码进行以下调整以解决问题,方法是首先解决承诺,然后将结果分配给组件状态:

componentDidMount() {

    MovieService.getMovies().then((movies) => {

        this.setState({ movies: movies });
    })
}
假设getMovies返回一个电影列表,您需要等待它返回的承诺实现,然后将该值分配给您的状态


假设getMovies返回一个电影列表,您需要等待它返回的承诺实现,然后将该值分配给您的状态

这一行的回答在语法上是不正确的:This.setStatemovies:moviesList};谢谢@Dacre,fixed这一行的答案在语法上不正确:this.setStatemovies:moviesList};谢谢@Dacre,修好了