React新手的菜鸟问题

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

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

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

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


慕妹3242003
浏览 571回答 1
1回答

一只甜甜圈

试一下~componentDidMount(){&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;_this&nbsp;=&nbsp;this; &nbsp;&nbsp;&nbsp;&nbsp;$.ajax({&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;url:&nbsp;url,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;success:&nbsp;function(rs){&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(rs.isLogin){ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_this.setState({showSign:false}); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;}) }
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript