react条件渲染
来源:互联网 发布:linux安装tensorflow 编辑:程序博客网 时间:2024/06/13 03:32
条件渲染
- 元素变量
声明一个变量,用if
判断该变量需要赋值的组件
let button = null; if (isLoggedIn) { button = <LogoutButton onClick={this.handleLogoutClick} />; } else { button = <LoginButton onClick={this.handleLoginClick} />; }
- 行内逻辑与
利用逻辑与
简化if
判断
function Mailbox(props) { const unreadMessages = props.unreadMessages; return ( <div> <h1>Hello!</h1> // 判断数组长度,是否渲染h2 {unreadMessages.length > 0 && <h2> You have {unreadMessages.length} unread messages. </h2> } </div> );}const messages = ['React', 'Re: React', 'Re:Re: React'];ReactDOM.render( <Mailbox unreadMessages={messages} />, document.getElementById('root'));
- 三元运算符
简单的三元运算符
render() { const isLoggedIn = this.state.isLoggedIn; return ( <div> The user is <b>{isLoggedIn ? 'currently' : 'not'}</b> logged in. </div> );}
渲染组件的三元运算
render() { const isLoggedIn = this.state.isLoggedIn; return ( <div> {isLoggedIn ? ( <LogoutButton onClick={this.handleLogoutClick} /> ) : ( <LoginButton onClick={this.handleLoginClick} /> )} </div> );}
- 阻止组件渲染
在一些情况下,你可能想隐藏本组件,即使他是被其他组件渲染出的,
解决办法:return null
,并且不会影响组件的生命周期
function WarningBanner(props) { if (!props.warn) { return null; } return ( <div className="warning"> Warning! </div> );}
本章示例
声明登录/登出两个组件。控制点击事件改变state.isLoggedIn
,相应的改变元素变量的赋值
function LoginButton(props) { return ( <button onClick={props.onClick}> Login </button> );}function LogoutButton(props) { return ( <button onClick={props.onClick}> Logout </button> );}class LoginControl extends React.Component { constructor(props) { super(props); this.handleLoginClick = this.handleLoginClick.bind(this); this.handleLogoutClick = this.handleLogoutClick.bind(this); this.state = {isLoggedIn: false}; } handleLoginClick() { this.setState({isLoggedIn: true}); } handleLogoutClick() { this.setState({isLoggedIn: false}); } render() { const isLoggedIn = this.state.isLoggedIn; let button = null; if (isLoggedIn) { button = <LogoutButton onClick={this.handleLogoutClick} />; } else { button = <LoginButton onClick={this.handleLoginClick} />; } return ( <div> <Greeting isLoggedIn={isLoggedIn} /> {button} </div> ); }}ReactDOM.render( <LoginControl />, document.getElementById('root'));
阅读全文
0 0
- react-bits:条件渲染
- react条件渲染
- React中的条件渲染
- React 条件渲染 if
- React-(if)条件渲染-condition
- React学习之条件视图渲染(六)
- React.js 官网资料摘记:条件渲染
- react爬坑之通过条件渲染控制组件的渲染与否
- 条件渲染
- &&运算符,三木运算符与React的条件渲染
- react demo1 (react内容渲染)
- React服务器渲染
- React服务器端渲染
- React服务器渲染
- React-服务器端渲染
- React服务器端渲染
- React 避免重渲染
- 从零开始 React 服务器渲染
- 如何调用继承了httpservlet的类中自己写的方法
- java中String与Byte[]的转换
- C#字符串格式化的C++实现
- 6、MD5加密算法
- 算法分析与设计丨第二周丨LeetCode(3)——Kth Largest Element in an Array(Medium)
- react条件渲染
- http://ticktick.blog.51cto.com/823160/431329
- NIPS 2017录用结果全公布,清华北大10篇,BAT 4篇(附详细名
- redis 监控的一些构思
- 机器学习的梯度下降中学习率的选取
- Revive的inject技术
- 微软C# 8.0中的四个特性
- 2017年执业药师法规考点 认定假药劣药
- tf API 研读5:Data IO