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.
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ébalorx.cond recibe tres argumentos.
| Orden | Argumento | En este ejemplo |
|---|---|---|
| 1 | Condición (Var) | LoginState.logged_in |
| 2 | Componente que se muestra si la condición es verdadera | El título "Logged In" |
| 3 | Componente que se muestra si la condición es falsa | El título "Not Logged In" |
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.toggle_login es un manejador de eventos como los de la lección 1. Usa not para invertir verdadero y falso.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".
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.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.rx.cond.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.
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© 2026 ReflexKR · Since 2026 · CC BY-NC 4.0
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.