Allow StatefulComponent to also be rendered via __str__ (#3211)
This makes it easier to implement React "render functions" when wrapping components that require children to be a callable.
This commit is contained in:
parent
be93b1280c
commit
aeca983290
@ -174,7 +174,7 @@ def _compile_root_stylesheet(stylesheets: list[str]) -> str:
|
|||||||
return templates.STYLE.render(stylesheets=sheets)
|
return templates.STYLE.render(stylesheets=sheets)
|
||||||
|
|
||||||
|
|
||||||
def _compile_component(component: Component) -> str:
|
def _compile_component(component: Component | StatefulComponent) -> str:
|
||||||
"""Compile a single component.
|
"""Compile a single component.
|
||||||
|
|
||||||
Args:
|
Args:
|
||||||
|
@ -2103,6 +2103,16 @@ class StatefulComponent(BaseComponent):
|
|||||||
"""
|
"""
|
||||||
return dict(Tag(name=self.tag))
|
return dict(Tag(name=self.tag))
|
||||||
|
|
||||||
|
def __str__(self) -> str:
|
||||||
|
"""Represent the component in React.
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
The code to render the component.
|
||||||
|
"""
|
||||||
|
from reflex.compiler.compiler import _compile_component
|
||||||
|
|
||||||
|
return _compile_component(self)
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def compile_from(cls, component: BaseComponent) -> BaseComponent:
|
def compile_from(cls, component: BaseComponent) -> BaseComponent:
|
||||||
"""Walk through the component tree and memoize all stateful components.
|
"""Walk through the component tree and memoize all stateful components.
|
||||||
|
Loading…
Reference in New Issue
Block a user