Fix interactions between foreach and cond (#521)
This commit is contained in:
parent
d3c3174ba4
commit
d57d9c78cf
@ -38,8 +38,14 @@ class Cond(Component):
|
||||
Returns:
|
||||
The conditional component.
|
||||
"""
|
||||
from pynecone.components.layout.foreach import Foreach
|
||||
|
||||
if comp2 is None:
|
||||
comp2 = Fragment.create()
|
||||
if isinstance(comp1, Foreach):
|
||||
comp1 = Fragment.create(comp1)
|
||||
if isinstance(comp2, Foreach):
|
||||
comp2 = Fragment.create(comp2)
|
||||
if isinstance(comp1, Cond):
|
||||
comp1.is_nested = True
|
||||
if isinstance(comp2, Cond):
|
||||
|
@ -58,6 +58,7 @@ class IterTag(Tag):
|
||||
The rendered component.
|
||||
"""
|
||||
# Import here to avoid circular imports.
|
||||
from pynecone.components.layout.cond import Cond
|
||||
from pynecone.components.layout.foreach import Foreach
|
||||
from pynecone.components.layout.fragment import Fragment
|
||||
|
||||
@ -73,8 +74,8 @@ class IterTag(Tag):
|
||||
assert len(args) == 2
|
||||
component = render_fn(arg, index)
|
||||
|
||||
# Nested foreach components must be wrapped in fragments.
|
||||
if isinstance(component, Foreach):
|
||||
# Nested foreach components or cond must be wrapped in fragments.
|
||||
if isinstance(component, (Foreach, Cond)):
|
||||
component = Fragment.create(component)
|
||||
|
||||
# Set the component key.
|
||||
|
Loading…
Reference in New Issue
Block a user