Skip to content

Commit 57855f5

Browse files
authored
add type conversion for int,float in built-in setters (#1660)
1 parent 6c80a0f commit 57855f5

File tree

1 file changed

+11
-2
lines changed

1 file changed

+11
-2
lines changed

reflex/vars.py

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030

3131
from reflex import constants
3232
from reflex.base import Base
33-
from reflex.utils import format, types
33+
from reflex.utils import console, format, types
3434

3535
if TYPE_CHECKING:
3636
from reflex.state import State
@@ -831,7 +831,16 @@ def setter(state: State, value: Any):
831831
state: The state within which we add the setter function.
832832
value: The value to set.
833833
"""
834-
setattr(state, self.name, value)
834+
if self.type_ in [int, float]:
835+
try:
836+
value = self.type_(value)
837+
setattr(state, self.name, value)
838+
except ValueError:
839+
console.warn(
840+
f"{self.name}: Failed conversion of {value} to '{self.type_.__name__}'. Value not set.",
841+
)
842+
else:
843+
setattr(state, self.name, value)
835844

836845
setter.__qualname__ = self.get_setter_name()
837846

0 commit comments

Comments
 (0)