关于回调this.setState无效的问题



  • 我在componentDidMount中fetch了服务器上面的一次请求,返回数据之后我做了一次改变state的操作this.setState({totalMoney:"1234567"});
    但是对应绑定的Text的值没有发生变化,但是在fetch之前操作是可以改变的。请教是怎么回事呢?
    componentDidMount(){
    fetch("https://www.qingqiu.com/id=123",{method:'GET'})
    .then(function (res) {
    if(res.ok){
    res.json().then(function (message) {
    if(message.message=="success")
    {
    this.setState({totalMoney:"1234567"});
    React.render();
    }
    });
    }else{
    console.log("请求失败");
    }
    }).catch(function (e) {
    console.log(e.message);
    });
    }


  • administrators

    因为在fetch的then回调中没有绑定this,所以this.setState无法执行
    绑定的方法很简单,用箭头函数代替所有function



  • @晴明 谢谢!搞定了


登录后回复