Getting setState is not a function

后端 未结 2 1532
情歌与酒
情歌与酒 2021-01-29 06:07

I am getting the following error

//bundle.js:31367 Uncaught TypeError: this.setState is not a function//

JSX:

2条回答
  •  执笔经年
    2021-01-29 07:01

    The problem is with Function Execution Scope.

    componentDidMount(){
        $.ajax({
          ...
        }).done(function({data}){
            ///// HERE {this}
            // try console.log(this);
            // you will see there is no`setState`
            this.setState({
                lis1:[data.banner]
            })
        })
    }
    

    Now, function inside the done chain, this reference only inside the function.

    Easy Fix:Use Fat Arror Function

    componentDidMount(){
        $.ajax({
            url:'',
            dataType:'json',
            cache:false,
        }).done(({data}) => {
            this.setState({
                lis1:[data.banner]
            })
        })
    }
    

提交回复
热议问题