diff --git a/reflex/vars.py b/reflex/vars.py index 0373ca06a..2db292c1e 100644 --- a/reflex/vars.py +++ b/reflex/vars.py @@ -30,7 +30,7 @@ from pydantic.fields import ModelField from reflex import constants from reflex.base import Base -from reflex.utils import format, types +from reflex.utils import console, format, types if TYPE_CHECKING: from reflex.state import State @@ -831,7 +831,16 @@ class BaseVar(Var, Base): state: The state within which we add the setter function. value: The value to set. """ - setattr(state, self.name, value) + if self.type_ in [int, float]: + try: + value = self.type_(value) + setattr(state, self.name, value) + except ValueError: + console.warn( + f"{self.name}: Failed conversion of {value} to '{self.type_.__name__}'. Value not set.", + ) + else: + setattr(state, self.name, value) setter.__qualname__ = self.get_setter_name()