Мне нужно импортировать компоненты с новым React lazy
API (16.6).
import React, {PureComponent, lazy} from 'react';
const Component1 = lazy(() => import('./Component1'));
const Component2 = lazy(() => import('./Component2'));
class CustomComponent extends PureComponent {
...
render() {
return (
<div>
<Component1 />
<Component2 />
</div>
);
}
}
В своих тестах я делаю снимки этого компонента. Это очень простой тест:
import { create } from 'react-test-renderer';
const tree = await create(<CustomComponent />).toJSON();
expect(tree).toMatchSnapshot();
В логах тест не пройден с этой ошибкой:
A React component suspended while rendering, but no fallback UI was specified.
Add a <Suspense fallback=...> component higher in the tree to provide a loading indicator or placeholder to display.
Должен ли я в каждом тестовом наборе набирать <Suspense>...
?
it('should show the component', async () => {
const component = await create(
<React.Suspense fallback={<div>loading</div>}>
<CustomComponent />
</React.Suspense>
);
const tree = component.toJSON();
expect(tree).toMatchSnapshot();
};
Если я это сделаю, то в снимке я вижу только компонент fallback
.
+ Array [ + <div> + loading + </div>, + ]
Итак, какой лучший способ сделать это?