From 3309c0e53356256268294286c44ea09f50014e0a Mon Sep 17 00:00:00 2001 From: Masen Furer Date: Mon, 5 Aug 2024 14:03:49 -0700 Subject: [PATCH] Use `._is_mutable()` to account for parent state proxy (#3739) When a parent state proxy is set, also allow child StateProxy._self_mutable to override the parent's `_is_mutable()`. --- reflex/state.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/reflex/state.py b/reflex/state.py index e29336042..b0c6646ce 100644 --- a/reflex/state.py +++ b/reflex/state.py @@ -2059,7 +2059,7 @@ class StateProxy(wrapt.ObjectProxy): Whether the state is mutable. """ if self._self_parent_state_proxy is not None: - return self._self_parent_state_proxy._is_mutable() + return self._self_parent_state_proxy._is_mutable() or self._self_mutable return self._self_mutable async def __aenter__(self) -> StateProxy: @@ -3302,7 +3302,7 @@ class ImmutableMutableProxy(MutableProxy): Raises: ImmutableStateError: if the StateProxy is not mutable. """ - if not self._self_state._self_mutable: + if not self._self_state._is_mutable(): raise ImmutableStateError( "Background task StateProxy is immutable outside of a context " "manager. Use `async with self` to modify state."