R

ReflexKR

Documentación de Reflex

Fundamentos de Reflex, con las manos

·

Resumen del curso

1

Haz clic y cambia: State y eventos

2

Ahora lo ves: renderizado condicional

3

Dibujar listas: rx.foreach

4

¿Por qué no funciona if? Compilación vs. ejecución

5

Darle estilo: componentes, props y estilos

6

Apps, páginas y una cesta de frutas

Fundamentos de Reflex, con las manos
Lección 2

Tiempo 0:08–0:13

Ahora lo ves: renderizado condicional

Si el usuario ha iniciado sesión, "Bienvenido"; si no, "Inicia sesión". Muchas veces una app tiene que mostrar una vista distinta según su estado. En esta lección usarás rx.cond, que cambia la vista en función de un valor del State.

2-1. Cambiar la vista con rx.cond (3 min)

class LoginState(rx.State):
    logged_in: bool = False

    @rx.event
    def toggle_login(self):
        self.logged_in = not self.logged_in


def show_login():
    return rx.box(
        rx.cond(
            LoginState.logged_in,
            rx.heading("Logged In", as_="h2"),
            rx.heading("Not Logged In", as_="h2"),
        ),
        rx.button("Toggle Login", on_click=LoginState.toggle_login),
    )

localhost:3000

Pruébalo

Not Logged In

Cada vez que pulsas Toggle Login, el título cambia.

rx.cond recibe tres argumentos.

OrdenArgumentoEn este ejemplo
1Condición (Var)LoginState.logged_in
2Componente que se muestra si la condición es verdaderaEl título "Logged In"
3Componente que se muestra si la condición es falsaEl título "Not Logged In"
  • El tercer argumento es opcional. Si escribes rx.cond(LoginState.logged_in, rx.text("Welcome!")), el texto solo aparece cuando el usuario ha iniciado sesión; en caso contrario, no se muestra nada.
  • El manejador toggle_login es un manejador de eventos como los de la lección 1. Usa not para invertir verdadero y falso.

2-2. ¿Y por qué no usar un if normal? (2 min)

En Python, lo natural sería escribir algo así:

def show_login():
    if LoginState.logged_in:
        return rx.heading("Logged In", as_="h2")
    return rx.heading("Not Logged In", as_="h2")

Este código no funciona. La función de la interfaz se ejecuta una sola vez, al arrancar la app, y en ese momento todavía no se sabe si el usuario ha iniciado sesión. rx.cond deja en la interfaz una instrucción que dice "más tarde, mira el valor en el navegador y elige".

En la lección 4 verás con detalle por qué ocurre esto. Por ahora, quédate con esto: "para bifurcar la interfaz según un valor del State, usa rx.cond".

Ejercicios

  1. En show_login, haz que el texto del botón también cambie según el estado: "Log In" / "Log Out". Pista: pon un rx.cond(...) en el lugar del hijo del botón.
  2. rx.cond también sirve para valores de props. Haz que el color del título sea "green" si el usuario ha iniciado sesión y "gray" si no.

Lista de comprobación de esta lección

  • Sé explicar qué es cada uno de los tres argumentos de rx.cond.
  • Sé qué pasa si omito el tercer argumento.
  • Sé que en el código de la interfaz no debo usar if con valores del State.

← Anterior

Lección 1 · Haz clic y cambia: State y eventos

Siguiente →

Lección 3 · Dibujar listas: rx.foreach

Recibe avisos de nuevas lecciones

Te avisaremos por correo cuando este curso tenga lecciones nuevas o se abra un curso de continuación.

Datos: tu correo electrónico · Finalidad: avisos de nuevas lecciones o de la publicación de este curso · Conservación: hasta que pidas que lo borremos. No lo usamos para nada más ni lo compartimos. Responde a cualquier aviso y lo borraremos enseguida.

Preguntas y respuestas

Pregunta lo que quieras sobre esta lección. Aquí se reúnen las preguntas de todas las versiones de idioma de esta página.

Se muestra como texto plano, sin enlaces ni formato.

R

ReflexKR

Aprende Python y Reflex haciendo. Todos los ejemplos se ejecutaron y verificaron en Reflex 0.10.0.

ReflexKR es gratis y sin banners publicitarios. Si te ayudó, puedes apoyarlo con un café. ☕ Invítanos un café

Aviso de afiliados
한국어English日本語简体中文EspañolDeutsch

© 2026 ReflexKR · Since 2026 · CC BY-NC 4.0

Built with Reflex