Eingeloggt: „Willkommen“. Nicht eingeloggt: „Bitte einloggen“. Apps müssen oft je nach Zustand etwas anderes anzeigen. In dieser Lektion verwendest du rx.cond, um die Oberfläche abhängig von einem State-Wert zu verändern.
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
Ausprobierenrx.cond nimmt drei Argumente entgegen.
| Position | Argument | In diesem Beispiel |
|---|---|---|
| 1 | Bedingung (Var) | LoginState.logged_in |
| 2 | Komponente, die angezeigt wird, wenn die Bedingung wahr ist | Überschrift „Logged In“ |
| 3 | Komponente, die angezeigt wird, wenn die Bedingung falsch ist | Überschrift „Not Logged In“ |
rx.cond(LoginState.logged_in, rx.text("Welcome!")), erscheint der Text nur im eingeloggten Zustand, andernfalls wird gar nichts angezeigt.toggle_login ist ein ganz normaler Event-Handler wie in Lektion 1. Mit not kehrt er wahr und falsch um.In Python würdest du wahrscheinlich Folgendes schreiben wollen.
def show_login():
if LoginState.logged_in:
return rx.heading("Logged In", as_="h2")
return rx.heading("Not Logged In", as_="h2")Dieser Code funktioniert nicht. UI-Funktionen laufen genau einmal, nämlich beim Start der App, und zu diesem Zeitpunkt weiß noch niemand, ob ein Nutzer eingeloggt ist. rx.cond hinterlegt in der Oberfläche stattdessen die Anweisung: „Schau später im Browser auf den Wert und wähle dann aus.“
Woran das genau liegt, klären wir ausführlich in Lektion 4. Für jetzt merkst du dir nur: „Für Verzweigungen im UI-Code abhängig von State-Werten nimmst du rx.cond.“
show_login dafür, dass auch die Beschriftung des Buttons je nach Zustand zwischen „Log In“ und „Log Out“ wechselt. Tipp: Setz rx.cond(...) an die Stelle des Kinds des Buttons.rx.cond funktioniert auch für Prop-Werte. Lass die color der Überschrift im eingeloggten Zustand "green" und sonst "gray" sein.rx.cond jeweils stehen.if mit State-Werten verwenden darf.← Zurück
Lektion 1 · Klick, und es ändert sich: State und Events
Weiter →
Lektion 3 · Listen zeichnen: rx.foreach
Über neue Lektionen informiert werden
Wir schicken dir eine E-Mail, wenn dieser Kurs neue Lektionen bekommt oder ein Folgekurs erscheint.
R
ReflexKR
Python und Reflex zum Anfassen. Alle Beispiele wurden mit Reflex 0.10.0 ausgeführt und geprüft.
ReflexKR ist kostenlos und ohne Werbebanner. Wenn es dir geholfen hat, kannst du es mit einem Kaffee unterstützen. ☕ Spendier uns einen Kaffee
Hinweis zu Affiliate-Links© 2026 ReflexKR · Since 2026 · CC BY-NC 4.0
Fragen & Antworten
Frag alles zu dieser Lektion. Fragen aus allen Sprachversionen dieser Seite erscheinen hier gemeinsam.