Я использую «реагирующую-загружаемую» в моем приложении для отложенной загрузки некоторых компонентов, которые я не хочу рендерить, при загрузке приложения, в настоящее время я следую за разбиением кода на основе маршрута.
Моя файловая структура:
![enter image description here](https://i.stack.imgur.com/mebl6.png)
Содержимое ignitus-About/Components/index.js
выглядит следующим образом:
export { default as About } from './About';
Это фрагмент кодаиз моего ленивого загрузочного компонента AboutUs:
const AboutUs = Loadable({
loader: () => import('../ignitus-About/Components/About'),
loading: Loading,
});
но вы заметите, что я пишу точный / полный путь к компоненту About, но внутри моего каталога Components
у меня есть только 2 файла один index.js
и другие About.js
.
Здесь index.js
экспортирует О компонент, выполняя это:
export { default as About } from './About';
, но когда в моем загружаемом компоненте я пишу это:
const AboutUs = Loadable({
loader: () => import('../ignitus-About/Components'),
loading: Loading,
});
Выдает ошибку, поэтому мой вопрос заключается в том, что реагирующая система ожидает точный путь к компоненту, если нет, то как я могу экспортировать свой компонент About из index.js
в загружаемый компонент.
вся кодовая база
Итак, когда я ленивыйзагрузите мой компонент следующим образом:
const AboutUs = Loadable({
loader: () => import('../ignitus-About/Components/About'),
loading: Loading,
});
он работает нормально.
Если я попытаюсь загрузить это так:
const AboutUs = Loadable({
loader: () => import('../ignitus-About/Components'),
loading: Loading,
});
выдает ошибку:
index.js:1452 Warning: React.createElement: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: undefined. You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.
Check the render method of `LoadableComponent`.
in LoadableComponent (created by Route)
in Route (at publicRoutes.js:56)
in Switch (at publicRoutes.js:41)
in div (at publicRoutes.js:39)
in PublicRoutes (created by Route)
in Route (at App.js:36)
in Switch (at App.js:34)
in div (at App.js:25)
in App (at src/index.js:29)
in Router (created by BrowserRouter)
in BrowserRouter (at src/index.js:28)
in Provider (at src/index.js:27)