條件渲染很是簡單,在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