Похоже, у вас возникли путаницы с синтаксисами ES6 export / import . Документация по MDN очень наглядна, я бы порекомендовал вам ее проверить.
Самое главное - запомнить разницу между именем по умолчанию и именованным экспортом / импортом. (СОВЕТ: Когда вы видите квадратные скобки в операторах экспорта / импорта, с которыми вы имеете дело с именованными)
В вашем конкретном случае c вам нужно будет сделать следующее:
- ./components/component-a.jsx
const ComponentA = () => {
return (
<MyComponent/>
);
};
export {ComponentA};
- . / components / component-b.jsx
const ComponentB = () => {
return (
<MyComponent/>
);
};
export {ComponentB};
- . / компоненты / индекс. js
import {componentA} from './component-a.jsx';
import {componentB} from './component-b.jsx';
export {componentA, componentB};
import {componentA, componentB} from './components';
import {componentA} from './components';
Это типичный шаблон для создания виртуального пространства имен экспорта / импорта для классификации логических модулей.
Обратите внимание, что я не использовал экспорт по умолчанию. Есть несколько мнений по этому поводу, но я бы порекомендовал не использовать их, чтобы избежать ошибок, подобных той, которая у вас есть.
Обратите также внимание, что вам всегда нужно будет указывать полный относительный путь к components
каталог. Единственный способ импортировать вещи из 'components'
- это установить пакет components
в каталог node_modules
.