add type conversion for int,float in built-in setters (#1660)
This commit is contained in:
parent
6c80a0f1eb
commit
57855f56a1
@ -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()
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user