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