Events
/
Setters
Every base var has a built-in event handler to set it's value for convenience, called set_VARNAME
.
Say you wanted to change the value of the select component. You could write your own event handler to do this:
options: list[str] = ["1", "2", "3", "4"]
class SetterState1(rx.State):
selected: str = "1"
def change(self, value):
self.selected = value
def code_setter():
return rx.vstack(
rx.badge(
SetterState1.selected, color_scheme="green"
),
rx.select(
options,
on_change=lambda value: SetterState1.change(
value
),
),
)
Or you could could use a built-in setter for conciseness.
options: list[str] = ["1", "2", "3", "4"]
class SetterState2(rx.State):
selected: str = "1"
def code_setter_2():
return rx.vstack(
rx.badge(
SetterState2.selected, color_scheme="green"
),
rx.select(
options,
on_change=SetterState2.set_selected,
),
)
In this example, the setter for selected
is set_selected
. Both of these examples are equivalent.
Setters are a great way to make your code more concise. But if you want to do something more complicated, you can always write your own function in the state.
Did you find this useful?