当前位置: 首页 > news >正文

react 有状态组件 切换登陆和未登录状态以及UI展示

在下面的例子中,我们将要创建一个名为 LoginControl 的有状态的组件。

它会根据当前的状态来渲染 <LoginButton /> 或 <LogoutButton>,它也将渲染前面例子中的 <Greeting />

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')
);

相关文章:

  • 整合SE J2ME SDK与eclipse开发环境
  • MP3在Sony Ericsson K700上的音响效果
  • K700之图像内存处理
  • react 隐藏组件 阻止渲染
  • react 数组map方法转化列表
  • 使用索爱V800开发流媒体应用程序
  • 读取索爱手机固件版本信息和IMEI号
  • react jsx中使用map
  • 在基于MIDP的应用程序上使用JDBC
  • react 表单使用受控组件的思想
  • 索爱部分机型支持同时播放多个声音
  • react状态提升 两个子组件状态共享 让子组件状态提升 通过公有父组件props的方法传递回调函数执行改变( handleChange(e) { // 之前的代码: this.setSt)
  • SonyEricsson发布更好支持企业级应用的新JSR
  • react 状态提升的总结
  • Java 3D(JSR184)文件压缩
  • [译]前端离线指南(上)
  • 【翻译】babel对TC39装饰器草案的实现
  • Angular数据绑定机制
  • JDK9: 集成 Jshell 和 Maven 项目.
  • Python实现BT种子转化为磁力链接【实战】
  • TCP拥塞控制
  • Vue源码解析(二)Vue的双向绑定讲解及实现
  • Xmanager 远程桌面 CentOS 7
  • yii2中session跨域名的问题
  • 阿里云Kubernetes容器服务上体验Knative
  • 彻底搞懂浏览器Event-loop
  • 服务器之间,相同帐号,实现免密钥登录
  • 记一次和乔布斯合作最难忘的经历
  • 精益 React 学习指南 (Lean React)- 1.5 React 与 DOM
  • 你真的知道 == 和 equals 的区别吗?
  • 驱动程序原理
  • 如何优雅的使用vue+Dcloud(Hbuild)开发混合app
  • 双管齐下,VMware的容器新战略
  • 新版博客前端前瞻
  • 译有关态射的一切
  • 运行时添加log4j2的appender
  • 关于Kubernetes Dashboard漏洞CVE-2018-18264的修复公告
  • 进程与线程(三)——进程/线程间通信
  • ​马来语翻译中文去哪比较好?
  • $jQuery 重写Alert样式方法
  • (03)光刻——半导体电路的绘制
  • (2)关于RabbitMq 的 Topic Exchange 主题交换机
  • (3)(3.2) MAVLink2数据包签名(安全)
  • (4)(4.6) Triducer
  • (MIT博士)林达华老师-概率模型与计算机视觉”
  • (翻译)terry crowley: 写给程序员
  • (论文阅读30/100)Convolutional Pose Machines
  • (强烈推荐)移动端音视频从零到上手(下)
  • (三)c52学习之旅-点亮LED灯
  • (十七)devops持续集成开发——使用jenkins流水线pipeline方式发布一个微服务项目
  • (新)网络工程师考点串讲与真题详解
  • (转)3D模板阴影原理
  • (转)可以带来幸福的一本书
  • (转)利用PHP的debug_backtrace函数,实现PHP文件权限管理、动态加载 【反射】...
  • .babyk勒索病毒解析:恶意更新如何威胁您的数据安全