Avoid recreating the rx.State tree for every get_state

This commit is contained in:
Masen Furer 2024-10-03 15:07:07 -07:00
parent 52d1a2c5ec
commit 774263d0ae
No known key found for this signature in database
GPG Key ID: B0008AD22B3B3A95

View File

@ -2774,10 +2774,12 @@ class StateManagerDisk(StateManager):
client_token, substate_address = _split_substate_key(token)
root_state_token = _substate_key(client_token, substate_address.split(".")[0])
root_state = self.states.get(root_state_token)
if root_state is None:
# Create a new root state which will be persisted in the next set_state call.
root_state = self.state(_reflex_internal_init=True)
return await self.load_state(
root_state_token, self.state(_reflex_internal_init=True)
)
return await self.load_state(root_state_token, root_state)
async def set_state_for_substate(self, client_token: str, substate: BaseState):
"""Set the state for a substate.