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 import constants
|
||||||
from reflex.base import Base
|
from reflex.base import Base
|
||||||
from reflex.utils import format, types
|
from reflex.utils import console, format, types
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from reflex.state import State
|
from reflex.state import State
|
||||||
@ -831,7 +831,16 @@ class BaseVar(Var, Base):
|
|||||||
state: The state within which we add the setter function.
|
state: The state within which we add the setter function.
|
||||||
value: The value to set.
|
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()
|
setter.__qualname__ = self.get_setter_name()
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user