Parcourir la source

call default_factorys on State.reset (#2749)

benedikt-bartscher il y a 1 an
Parent
commit
e70c149752
1 fichiers modifiés avec 6 ajouts et 1 suppressions
  1. 6 1
      reflex/state.py

+ 6 - 1
reflex/state.py

@@ -1047,7 +1047,12 @@ class BaseState(Base, ABC, extra=pydantic.Extra.allow):
         for prop_name in self.base_vars:
             if prop_name == constants.ROUTER:
                 continue  # never reset the router data
-            setattr(self, prop_name, copy.deepcopy(fields[prop_name].default))
+            field = fields[prop_name]
+            if default_factory := field.default_factory:
+                default = default_factory()
+            else:
+                default = copy.deepcopy(field.default)
+            setattr(self, prop_name, default)
 
         # Recursively reset the substates.
         for substate in self.substates.values():