条件渲染很是简单,在render函数中返回不一样的react element便可。在下面的例子中,我在state中维护了一个变量user。render函数对该变量进行判断,若是user有值,返回欢迎界面,不然返回登陆页面。这是经典数据驱动的思想,数据决定页面的渲染。react
// 用户登陆成功后,将用户设置为全局变量 window.user = {name:"terry"} class MyDiv extends React.Component{ constructor(props){ super(props); this.state = {user : null} } // 用户点击登陆按钮时候执行该函数,该函数中修改state中user的取值。而且阻止事件的默认行为 login=(event)=>{ this.setState({ user:window.user }) event.preventDefault(); } // 渲染,当state中维护的user为不存在的时候,显示"请登陆",不然显示"欢迎您,xxx" render(){ if(this.state.user){ return ( <div>欢迎您,{this.state.user.name } </div> ) } else { return ( <div> <a href="#" onClick={this.login}>请登陆</a> </div> ) } } } ReactDOM.render(<MyDiv/>,document.getElementById('app'));
另外,写这个案例的时候遇到一些坑app