ソースを参照

call default_factorys on State.reset (#2749)

benedikt-bartscher 1 年間 前
コミット
e70c149752
1 ファイル変更6 行追加1 行削除
  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:
         for prop_name in self.base_vars:
             if prop_name == constants.ROUTER:
             if prop_name == constants.ROUTER:
                 continue  # never reset the router data
                 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.
         # Recursively reset the substates.
         for substate in self.substates.values():
         for substate in self.substates.values():