Lección 09. Renderizado Condicional.

En muchas ocasiones, nuestra APP, deberá cambiar el estado y con ello renderizar diferente contenido.

Para ello, tenemos el Renderizado Condicional.

Con ayuda de un operador ternario, podemos renderizar un componente u otro.

Un ejemplo:

Tenemos este componente padre.

Nota: No olvidemos el import de Component de React.

Copiar código
import React, {Component} from "react";
          
export default class RenderizadoCondicional extends Component {
  render() {
    return (
      <div>
        <h2>
          Renderizado Condicional
        </h2>
				
        <Login/>
        <Logout/>
				
      </div>
    )
  }
}

Que a su vez, renderiza 2 elementos hijos, los cuales son:

Login:

Copiar código
function Login () {
  return (
    <div>
      <h3>
        Login
      </h3>
    </div>
  );
}

Y Logout:

Copiar código
function Logout () {
  return (
    <div>
      <h3>
        Logout
      </h3>
    </div>
  );
}

Ambos, simplemente renderizan contenido JSX.

Pero, si quiero renderizar solo uno de ellos a la vez, podemos resolverlo, utilizando una condición.

Cambiando el componente padre de la siguiente forma:

Copiar código
import React, {Component} from "react";
          
export default class RenderizadoCondicional extends Component {

  //Creacion del constructor
  constructor (props) {
    super (props);
    this.state = {
      session: true,
    }
  }
	
  render() {
    return (
      <div>
        <h2>
          Renderizado Condicional
        </h2>
				
        {/*Operador terminario*/}
        {this.state.session ? <Login/> : <Logout/>}
      </div>
    )
  }
}

El siguiente cambio crea un state, donde session es un atributo de valor boolean.

Dentro de nuestro render y return() utilizamos un operador terminario, si this.state.session es igual a true, entonces renderiza Login, si no (si this.state.session es false), renderiza Logout.

Nota: Los renderizados condicionales y el operador ternario solo funcionan con valores booleans.