169 похожих чатов

Есть фича Layouts. Состоит из components. Что бы удобно импортировать

компоненты фичи, я в index.ts файле реэкспортирую эти компоненты(рис. 1)

Aside простой компонент
export const Aside = ({className}: Props) => {
return <div className={className}>Aside</div>;
};

Хочу его стилизовать через styled-components.

Делаю так
import {Aside} from 'features/Layouts';

export const StyledAside = styled(Aside)`
width: 300px;
`;
Получаю ошибку Cannot read properties of undefined (reading 'Aside')

Если импортировать с полным путем до Aside, то компонент стилизуется
Вот так:
import {Aside} from 'features/Layouts/components/Aside';

Не пойму.. Вебпак не смог пути правильные вывести или стайлед компонент не смог их понять?

Выводил в консоль.лог
import * as Layouts from 'features/Layouts';
console.log(Layouts);
Вроде есть этот Aside (рис. 2)

27 ответов

15 просмотров

Сделай console.log(Aside) в случае с импортом из index.tsx, перед тем как предеавать его в styled(Aside)

Андрей-Иванов Автор вопроса
Denis Deniskov
Сделай console.log(Aside) в случае с импортом из i...

Та же ошибка будет. Вопрос почему..) Cannot read properties of undefined (reading 'Aside')

Андрей Иванов
Та же ошибка будет. Вопрос почему..) Cannot read ...

Ну сделай import * as blablabla from 'features/Layouts'; console.log(blablabla) Посмотри что модуль вообще экпортирует

Андрей-Иванов Автор вопроса
Denis Deniskov
Ну сделай import * as blablabla from 'features/Lay...

На втором скрине) Самое последнее предложение

Андрей Иванов
На втором скрине) Самое последнее предложение

import {Aside} from 'features/Layouts'; console.log(Aside) Что будет в логе? undefined?

Андрей-Иванов Автор вопроса
Андрей-Иванов Автор вопроса
Denis Deniskov
А стек у этой ошибки есть?

Да, он ведет до места где используется export const StyledAside = styled(Aside)` width: 300px; `;

ну хоршо, убери это строку и воткни там console.log(Aside), в нем будет undefined?

А у тебя там случайно нет циклической зависимости? ну что-то типо index.tsx -> styled.ts -> index.tsx?

Андрей-Иванов Автор вопроса

Ну как сказать. Вроде нет. И лейаут и асайд реэкспортируются из index.tsx А уже в лейауте(styles.ts) имотрируется асайд

Андрей Иванов
Ну как сказать. Вроде нет. И лейаут и асайд реэксп...

Это vscode? Нет плагина который бы следил за этим (всяко лучше чем самому по файлам бегать)

Андрей-Иванов Автор вопроса
Denis Deniskov
И где

В лейуте мне нужны стили которые описал в styles)

Андрей Иванов
В лейуте мне нужны стили которые описал в styles)

У тебя L/styles.tsx ссылается на index.tsx L/Index.tsx на L/styles.tsx index.tsx на L/index.tsx

Андрей-Иванов Автор вопроса
Denis Deniskov
У тебя L/styles.tsx ссылается на index.tsx L/Inde...

Не очень понятно, но спасибо, посижу покурю это)

Андрей Иванов
Не очень понятно, но спасибо, посижу покурю это)

Вообще если используешь eslint для него можешь поставить правило https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/no-cycle.md

Андрей-Иванов Автор вопроса
Denis Deniskov
Вообще если используешь eslint для него можешь пос...

Добавил правило. Не ругается import {Aside} from 'features/Layouts';

Андрей-Иванов Автор вопроса
Андрей Иванов
Добавил правило. Не ругается import {Aside} from '...

"import/no-cycle": 2 а так? Ну странно ну проверь руками есть ли цикл, перейди, по файликам выше как я писал, если вернешься к тому же файлику с которого начинал, значит цикл есть=) Может правило не отрабатывает, а может я ошибся и цикла нет

Андрей-Иванов Автор вопроса
Denis Deniskov
"import/no-cycle": 2 а так? Ну странно ну провер...

С Aside перейти? import {Aside} from 'features/Layouts';

Андрей Иванов
С Aside перейти? import {Aside} from 'features/La...

Да можешь с любого начинать, если это цикл ты в любом случае по всем по ним пройдешься

Похожие вопросы

Обсуждают сегодня

30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
~ 2m21s  nix shell github:nixos/nixpkgs#stack ~  stack ghc -- --version error: … while calling the 'derivationStrict' builtin at /builtin/derivation.nix:...
Rebuild your mind.
6
Карта сайта