React学习案例二十八

Posted hhh江月

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了React学习案例二十八相关的知识,希望对你有一定的参考价值。

React学习案例二十八

function Greeting(props) 
    const isLoggedIn = props.isLoggedIn;
    if (isLoggedIn) 
      return <UserGreeting />;
    
    return <GuestGreeting />;
  
  
  ReactDOM.render(
    // Try changing to isLoggedIn=true:
    <Greeting isLoggedIn=false />,
    document.getElementById('root')
  );



  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;
    
      return (
        <div>
          <Greeting isLoggedIn=isLoggedIn />
          button
        </div>
      );
    
  
  

  
    handleLoginClick() 
      this.setState(isLoggedIn: true);
    
  
    handleLogoutClick() 
      this.setState(isLoggedIn: false);
    
  
    render() 
      const isLoggedIn = this.state.isLoggedIn;
      let button;
      if (isLoggedIn) 
        button = <LogoutButton onClick=this.handleLogoutClick />;
       else 
        button = <LoginButton onClick=this.handleLoginClick />;
      
  
      return (
        <div>
          <Greeting isLoggedIn=isLoggedIn />
          button
        </div>
      );
    
  
  


  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 />

      ));
    
  
    render() 
      return (
        <div>
          <WarningBanner warn=this.state.showWarning />
          <button onClick=this.handleToggleClick>
            this.state.showWarning ? 'Hide' : 'Show'
          </button>
  

以上是关于React学习案例二十八的主要内容,如果未能解决你的问题,请参考以下文章

React学习案例十八

React学习案例二十三

React学习案例二十二

React学习案例二十六

React学习案例二十四

React学习案例二十五