浏览代码

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():