|
@@ -2554,6 +2554,9 @@ class ComponentState(State, mixin=True):
|
|
|
Returns:
|
|
|
A new instance of the Component with an independent copy of the State.
|
|
|
"""
|
|
|
+ from reflex.components import Component
|
|
|
+ from reflex.components.base.fragment import Fragment
|
|
|
+
|
|
|
cls._per_component_state_instance_count += 1
|
|
|
state_cls_name = f"{cls.__name__}_n{cls._per_component_state_instance_count}"
|
|
|
component_state = type(
|
|
@@ -2565,6 +2568,12 @@ class ComponentState(State, mixin=True):
|
|
|
# Save a reference to the dynamic state for pickle/unpickle.
|
|
|
setattr(reflex.istate.dynamic, state_cls_name, component_state)
|
|
|
component = component_state.get_component(*children, **props)
|
|
|
+ if isinstance(component, Var):
|
|
|
+ component = Fragment.create(component)
|
|
|
+ elif isinstance(component, tuple):
|
|
|
+ component = Fragment.create(*component)
|
|
|
+ elif not isinstance(component, Component):
|
|
|
+ component = component()
|
|
|
component.State = component_state
|
|
|
return component
|
|
|
|