Function leptos::Show

source ·
pub fn Show<F, W, IV>(cx: Scope, props: ShowProps<F, W, IV>) -> impl IntoViewwhere
    W: Fn() -> bool + 'static,
    F: Fn(Scope) -> IV + 'static,
    IV: IntoView,
Expand description

A component that will show its children when the when condition is true, and show the fallback when it is false, without rerendering every time the condition changes.

Note: Because of the nature of generic arguments, it’s not really possible to make the fallback optional. If you want an empty fallback state—in other words, if you want to show the children if when is true and noting otherwise—use fallback=|_| () (i.e., a fallback function that returns the unit type ()).

let (value, set_value) = create_signal(cx, 0);

view! { cx,
  <Show
    when=move || value() < 5
    fallback=|cx| view! { cx, "Big number!" }
  >
    "Small number!"
  </Show>
}

Required Props

  • cx: Scope
    • The scope the component is running in
  • children: [Box<dyn Fn(Scope) -> Fragment>]
    • The components Show wraps
  • when: [W]
    • A closure that returns a bool that determines whether this thing runs
  • fallback: [F]
    • A closure that returns what gets rendered if the when statement is false