Skip to content

Commit 2549a18

Browse files
theKasheygregberge
authored andcommitted
fix: condition render in Fragments #942 (#943)
1 parent acb6bf1 commit 2549a18

File tree

2 files changed

+13
-3
lines changed

2 files changed

+13
-3
lines changed

Diff for: src/reconciler/hotReplacementRender.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -215,7 +215,7 @@ const mergeInject = (a, b, instance) => {
215215
const transformFlowNode = flow =>
216216
flow.reduce((acc, node) => {
217217
if (isFragmentNode(node) && node.props && node.props.children) {
218-
return [...acc, ...node.props.children]
218+
return [...acc, ...filterNullArray(node.props.children)]
219219
}
220220
return [...acc, node]
221221
}, [])

Diff for: test/AppContainer.dev.test.js

+12-2
Original file line numberDiff line numberDiff line change
@@ -1889,7 +1889,10 @@ describe(`AppContainer (dev)`, () => {
18891889

18901890
const InnerItem = () => (
18911891
<React.Fragment>
1892+
{false && <div>hole</div>}
18921893
-1-<InnerComponent />
1894+
{false && <div>hole</div>}
1895+
-3-<InnerComponent />
18931896
</React.Fragment>
18941897
)
18951898
RHL.register(InnerItem, 'InnerItem', 'test.js')
@@ -1916,7 +1919,9 @@ describe(`AppContainer (dev)`, () => {
19161919
</AppContainer>,
19171920
)
19181921

1919-
expect(wrapper.update().text()).toBe('1-1-OldInnerComponent3')
1922+
expect(wrapper.update().text()).toBe(
1923+
'1-1-OldInnerComponent-3-OldInnerComponent3',
1924+
)
19201925
{
19211926
class InnerComponent extends Component {
19221927
componentWillUnmount() {
@@ -1932,15 +1937,20 @@ describe(`AppContainer (dev)`, () => {
19321937

19331938
const InnerItem = () => (
19341939
<React.Fragment>
1940+
{false && <div>hole</div>}
19351941
-2-<InnerComponent />
1942+
{false && <div>hole</div>}
1943+
-3-<InnerComponent />
19361944
</React.Fragment>
19371945
)
19381946
RHL.register(InnerItem, 'InnerItem', 'test.js')
19391947

19401948
wrapper.setProps({ children: <App /> })
19411949
}
19421950
expect(unmount).toHaveBeenCalledTimes(0)
1943-
expect(wrapper.update().text()).toBe('1-2-NewInnerComponent3')
1951+
expect(wrapper.update().text()).toBe(
1952+
'1-2-NewInnerComponent-3-NewInnerComponent3',
1953+
)
19441954
} else {
19451955
// React 15 is always ok
19461956
expect(true).toBe(true)

0 commit comments

Comments
 (0)