在极少数状况下,你可能但愿能隐藏组件,即便它已经被其余组件渲染。若要完成此操做,你可让 render
方法直接返回 null
,而不进行任何渲染。ide
下面的示例中,<WarningBanner />
会根据 prop 中 warn
的值来进行条件渲染。若是 warn
的值是 false
,那么组件则不会渲染:this
function WarningBanner(props) { if (!props.warn) { return null; } return ( <div className="warning"> Warning! </div> ); } class Page extends React.Component { constructor(props) { super(props); this.state = {showWarning: true}; this.handleToggleClick = this.handleToggleClick.bind(this); } handleToggleClick() { this.setState(state => ({ showWarning: !state.showWarning })); } render() { return ( <div> <WarningBanner warn={this.state.showWarning} /> <button onClick={this.handleToggleClick}> {this.state.showWarning ? 'Hide' : 'Show'} </button> </div> ); } } ReactDOM.render( <Page />, document.getElementById('root') );