File tree Expand file tree Collapse file tree 2 files changed +17
-1
lines changed Expand file tree Collapse file tree 2 files changed +17
-1
lines changed Original file line number Diff line number Diff line change @@ -435,7 +435,10 @@ function _renderToString(
435435 // When a component returns a Fragment node we flatten it in core, so we
436436 // need to mirror that logic here too
437437 let isTopLevelFragment =
438- rendered != null && rendered . type === Fragment && rendered . key == null ;
438+ rendered != null &&
439+ rendered . type === Fragment &&
440+ rendered . key == null &&
441+ rendered . props . tpl == null ;
439442 rendered = isTopLevelFragment ? rendered . props . children : rendered ;
440443
441444 const renderChildren = ( ) =>
Original file line number Diff line number Diff line change @@ -1686,5 +1686,18 @@ describe('render', () => {
16861686 '<div>foo<span>bar</span><p>foo</p><p>bar</p></div>'
16871687 ) ;
16881688 } ) ;
1689+
1690+ it ( 'should bypass top level fragment detection' , ( ) => {
1691+ function Foo ( props ) {
1692+ return props . children ;
1693+ }
1694+ let vnode = (
1695+ < Foo >
1696+ < Fragment tpl = { [ '<div>foo' , '</div>' ] } exprs = { [ < span > bar</ span > ] } />
1697+ </ Foo >
1698+ ) ;
1699+ let rendered = render ( vnode ) ;
1700+ expect ( rendered ) . to . equal ( '<div>foo<span>bar</span></div>' ) ;
1701+ } ) ;
16891702 } ) ;
16901703} ) ;
You can’t perform that action at this time.
0 commit comments