From a2f6e04070398fe8a31e83aeb63ef1b20f9ee9e9 Mon Sep 17 00:00:00 2001 From: Anton Korzunov Date: Tue, 24 Apr 2018 19:09:52 +1000 Subject: [PATCH] fix: Condition render in Fragments. #942 --- src/reconciler/hotReplacementRender.js | 2 +- test/AppContainer.dev.test.js | 14 ++++++++++++-- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/src/reconciler/hotReplacementRender.js b/src/reconciler/hotReplacementRender.js index 49c87bda1..9c578b70d 100644 --- a/src/reconciler/hotReplacementRender.js +++ b/src/reconciler/hotReplacementRender.js @@ -215,7 +215,7 @@ const mergeInject = (a, b, instance) => { const transformFlowNode = flow => flow.reduce((acc, node) => { if (isFragmentNode(node) && node.props && node.props.children) { - return [...acc, ...node.props.children] + return [...acc, ...filterNullArray(node.props.children)] } return [...acc, node] }, []) diff --git a/test/AppContainer.dev.test.js b/test/AppContainer.dev.test.js index 26ccd9f2a..d37171447 100644 --- a/test/AppContainer.dev.test.js +++ b/test/AppContainer.dev.test.js @@ -1829,7 +1829,10 @@ describe(`AppContainer (dev)`, () => { const InnerItem = () => ( + {false &&
hole
} -1- + {false &&
hole
} + -3-
) RHL.register(InnerItem, 'InnerItem', 'test.js') @@ -1856,7 +1859,9 @@ describe(`AppContainer (dev)`, () => { , ) - expect(wrapper.update().text()).toBe('1-1-OldInnerComponent3') + expect(wrapper.update().text()).toBe( + '1-1-OldInnerComponent-3-OldInnerComponent3', + ) { class InnerComponent extends Component { componentWillUnmount() { @@ -1872,7 +1877,10 @@ describe(`AppContainer (dev)`, () => { const InnerItem = () => ( + {false &&
hole
} -2- + {false &&
hole
} + -3-
) RHL.register(InnerItem, 'InnerItem', 'test.js') @@ -1880,7 +1888,9 @@ describe(`AppContainer (dev)`, () => { wrapper.setProps({ children: }) } expect(unmount).toHaveBeenCalledTimes(0) - expect(wrapper.update().text()).toBe('1-2-NewInnerComponent3') + expect(wrapper.update().text()).toBe( + '1-2-NewInnerComponent-3-NewInnerComponent3', + ) } else { // React 15 is always ok expect(true).toBe(true)