|
@@ -65,7 +65,24 @@ class Tag:
|
|
Yields:
|
|
Yields:
|
|
Tuple[str, Any]: The field name and value.
|
|
Tuple[str, Any]: The field name and value.
|
|
"""
|
|
"""
|
|
|
|
+ from reflex.components.component import BaseComponent
|
|
|
|
+
|
|
for field in dataclasses.fields(self):
|
|
for field in dataclasses.fields(self):
|
|
|
|
+ value = getattr(self, field.name)
|
|
|
|
+ if isinstance(value, list):
|
|
|
|
+ children = []
|
|
|
|
+ for child in value:
|
|
|
|
+ if isinstance(child, BaseComponent):
|
|
|
|
+ children.append(child.render())
|
|
|
|
+ else:
|
|
|
|
+ children.append(child)
|
|
|
|
+ yield field.name, children
|
|
|
|
+ continue
|
|
|
|
+ if isinstance(value, BaseComponent):
|
|
|
|
+ yield field.name, value.render()
|
|
|
|
+ continue
|
|
|
|
+ if callable(value) and not isinstance(value, Var):
|
|
|
|
+ continue
|
|
yield field.name, getattr(self, field.name)
|
|
yield field.name, getattr(self, field.name)
|
|
|
|
|
|
def add_props(self, **kwargs: Optional[Any]) -> Tag:
|
|
def add_props(self, **kwargs: Optional[Any]) -> Tag:
|