Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript React JS:为什么我在componentdidMount()处出错?_Javascript_Reactjs_Frontend_React Props - Fatal编程技术网

Javascript React JS:为什么我在componentdidMount()处出错?

Javascript React JS:为什么我在componentdidMount()处出错?,javascript,reactjs,frontend,react-props,Javascript,Reactjs,Frontend,React Props,以下是我的父组件: const movies = [896, 895] const cards = movies.map(movie =>{ <FlipCard number = {'movie'} /> }) state = { poster: 'http://image.tmdb.org/t/p/w500', } componentDidMount(){ axios.get('https

以下是我的父组件:

const movies = [896, 895]

    const cards = movies.map(movie =>{
        <FlipCard number = {'movie'} />
    })
state = {
        poster: 'http://image.tmdb.org/t/p/w500',
    }

     componentDidMount(){
        axios.get('https://api.themoviedb.org/3/movie/' + {this.props.number} + '?api_key=*******&language=en-US')
            .then(
                    res=>{
                        this.setState({poster: this.state.poster + res.data.poster_path})   
                        console.log(this.props);             
                        }
                )   
        } 
const movies = [896, 895]

const cards = movies.map(movie => {
   <FlipCard number = 'movie' />
})
在浏览器中,我遇到以下错误: [此.props.number处的意外关键字'this']

在VS代码中,我得到了这个错误 [':'在该axios行处应为]

我如何解决这个问题

编辑
我确实去掉了卷曲的大括号。现在componentdidMount()根本没有启动。甚至console.log也没有显示。为什么?请帮忙

尝试以下方式修复代码: 在父组件中:

const movies = [896, 895]

    const cards = movies.map(movie =>{
        <FlipCard number = {'movie'} />
    })
state = {
        poster: 'http://image.tmdb.org/t/p/w500',
    }

     componentDidMount(){
        axios.get('https://api.themoviedb.org/3/movie/' + {this.props.number} + '?api_key=*******&language=en-US')
            .then(
                    res=>{
                        this.setState({poster: this.state.poster + res.data.poster_path})   
                        console.log(this.props);             
                        }
                )   
        } 
const movies = [896, 895]

const cards = movies.map(movie => {
   <FlipCard number = 'movie' />
})

您可以使用箭头函数和异步等待方法解决此问题并编写更好的代码

state = {
  poster: 'http://image.tmdb.org/t/p/w500',
}

componentDidMount() {
  getPoster()
} 

const getPoster = async () => {
  try {
    const response = await axios.get(`https://api.themoviedb.org/3/movie/${this.props.number}api_key=*******&language=en-US`)
    this.setState({poster: this.state.poster + response.data.poster_path})   
    console.log(this.props);             
  } catch(err) {
    console.log(err)
  }
}

这不是有效的javascript-删除卷曲尝试从
{this.props.number}
@Peter中删除
{}
。没有显示任何错误。但是componentDidMount()根本没有启动。甚至其中的console.log也不会显示。为什么?@DanielA.White请参考上面的内容。我照你说的做了。错误不再存在。但是,componentdidMount()不再触发。甚至console.log也没有显示!请帮助。我认为您的API调用没有返回有效响应。