[fizz] Fix validateIterable call (#24166)
* fix validate iterable call * supports iterable * gate test by experimental
salazarm committed
Mar 25, 2022 at 14:03 UTC
e7d0053e65db49a536440eb24e6c1e4961d976f6
2 files changed
+24
-1
packages/react-dom/src/__tests__/ReactDOMFizzServer-test.js
+23
@@ -2508,4 +2508,27 @@ describe('ReactDOMFizzServer', () => {
2508
<span>default</span>,
2509
]);
2510
});
2511
+
2512
+ // @gate experimental
2513
+ it('Supports iterable', async () => {
2514
+ const Immutable = require('immutable');
2515
+
2516
+ const mappedJSX = Immutable.fromJS([
2517
+ {name: 'a', value: 'a'},
2518
+ {name: 'b', value: 'b'},
2519
+ ]).map(item => <li key={item.get('value')}>{item.get('name')}</li>);
2520
+
2521
+ await act(async () => {
2522
+ const {pipe} = ReactDOMFizzServer.renderToPipeableStream(
2523
+ <ul>{mappedJSX}</ul>,
2524
+ );
2525
+ pipe(writable);
2526
+ });
2527
+ expect(getVisibleChildren(container)).toEqual(
2528
+ <ul>
2529
+ <li>a</li>
2530
+ <li>b</li>
2531
+ </ul>,
2532
+ );
2533
+ });
2534
});
packages/react-server/src/ReactFizzServer.js
+1
-1
@@ -1181,7 +1181,7 @@ function renderNodeDestructive(
1181
const iteratorFn = getIteratorFn(node);
1182
if (iteratorFn) {
1183
if (__DEV__) {
1184
- validateIterable(node, iteratorFn());
1184
+ validateIterable(node, iteratorFn);
1185
}
1186
const iterator = iteratorFn.call(node);
1187
if (iterator) {