[fizz] Fix validateIterable call (#24166)

* fix validate iterable call

* supports iterable

* gate test by experimental
This commit is contained in:
salazarm
2022-03-25 14:03:06 -04:00
committed by GitHub
parent a19e7b07ef
commit aaab8d4061
2 changed files with 24 additions and 1 deletions
@@ -2508,4 +2508,27 @@ describe('ReactDOMFizzServer', () => {
<span>default</span>,
]);
});
// @gate experimental
it('Supports iterable', async () => {
const Immutable = require('immutable');
const mappedJSX = Immutable.fromJS([
{name: 'a', value: 'a'},
{name: 'b', value: 'b'},
]).map(item => <li key={item.get('value')}>{item.get('name')}</li>);
await act(async () => {
const {pipe} = ReactDOMFizzServer.renderToPipeableStream(
<ul>{mappedJSX}</ul>,
);
pipe(writable);
});
expect(getVisibleChildren(container)).toEqual(
<ul>
<li>a</li>
<li>b</li>
</ul>,
);
});
});
+1 -1
View File
@@ -1181,7 +1181,7 @@ function renderNodeDestructive(
const iteratorFn = getIteratorFn(node);
if (iteratorFn) {
if (__DEV__) {
validateIterable(node, iteratorFn());
validateIterable(node, iteratorFn);
}
const iterator = iteratorFn.call(node);
if (iterator) {