React新手的菜鸟问题

我初学就试着实现一个登陆组件

<SignControl>
    {this.state.showSign?<div>登陆</div>:<div>用户名<div/>}
</SignControl>

大概结构就是这样的。。。实际肯定复杂一些
我现在this.state.showSigngetInitialState里默认是true
componentWillMount中会发一个ajax给服务器问有没有session,并且返回用户名,如果有就this.setState({showSign:false})
但是ajax是异步的,每次我都渲染完了ajax才异步执行,状态栏就永远显示登陆按钮而不是用户名

请问这个问题怎么解决,我对react的生命周期函数的理解太浅,都是瞎用的,所有有没有更好的做法?求各位指点!谢谢!

阅读 1.6k
1 个回答

试一下~

componentDidMount(){
    var _this = this;
    $.ajax({
        url: url,
        success: function(rs){
          if(rs.isLogin){
              _this.setState({showSign:false});
          }
        }
    })
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题