|
@@ -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()
|
|
|
|