Evghenii
Билд от cra при этом отрабатывает как нужно на другом проекте
Evghenii
Без доп шаманств
Ilya
Да, он берет один и тот же .env файл в обоих случаях
А чисто случайно нигде в коде нет абсолютно пути?
Evghenii
Уже json diff делал :D
Ilya
Нда, суровый проблема )))
Evghenii
Билдится локально на моем компе и у коллег
Egor
@batichelio Это курс в гугл классе код курса v5bw3n как пользоваться гугл классом: https://support.google.com/edu/classroom/answer/6020297?co=GENIE.Platform%3DDesktop&hl=ru Делаешь задание рендеринг списков, пишешь мне: я деляю код ревью, если все ок, то делаешь следующее задание и так до конца)
Bogdan
Хок возвращает модифицированный компонент или копию?
Александр
Хок возвращает модифицированный компонент или копию?
Новый компонент, или вы о чем вообще ?
Bogdan
Новый компонент, или вы о чем вообще ?
То есть не модифицированный, а новый?
Александр
Ну да
Александр
То есть не модифицированный, а новый?
На самом деле зависит от реализации. Большая часть HOC как раз принимают компонент, и возвращают новый. Но в принципе HOC это же всего лишь функция Component -> Component, внутри что угодно может быть
Александр
Ээ, компонент, который может быть как классом так и функциональным компонентом
Александр
https://github.com/ReactTraining/react-router/blob/master/packages/react-router/modules/withRouter.js#L12
Александр
Вот пример, на выделенной строке создаётся новый компонент (функциональный в данном случае) и возвращается
Александр
Функция, которая просто вернёт функцию
Не просто функцию. Если мы о функциональных компонентах, то надо помнить, что все функциональные компоненты это функции, но не все функции являются функциональными компонентами.
Александр
К реакту какое отношение имеет? Вам в другой чат
wolfe
t.me/jquery_ru
Dzmitry
Господи, что это и зачем?
Александр
Работает, но никому не говорите об этом
Dzmitry
Зачем в реакте это юзать?
Александр
В любом случае проблема не ясна ваша, не понятно что вы делаете и что не работает
Виталий
Всем привет. Задался таким вопросом: почему модальные окна в реакте задаются декларативно (а не императивно). Ведь можно было бы сделать вот так: class App extends React.Component { constructor() { super(); this.handleClick = this.handleClick.bind(this); } handleClick() { this.modal.open(<div>Some content of modal.</div>); } render() { return (<button >Click me to open modal</button>); } } Почему так не делают? Почему вместо императиного стиля используют декларативный? Т.е. в рендер методе прямо указывают <modal isOpen = {this.state.isOpen}>…some content</modal>?
Виталий
очевидно управляет модальным окном
Виталий
странный вопрос
Александр
Виталий
а слова modal и open вам ни о чём не говорят? Думаю если вам не понятен мой вопрос то вопрос не к вам.
Aliaksandr
А откуда modal берется вообще? Он ведь туда как-то должен попасть. Тут вариант либо ссылка на него, либо прямая вставка в DOM
Виталий
берутся из библиотеки
Виталий
из модуля
Виталий
откуда угодно
Aliaksandr
У реакта свой виртуал дом, как они туда попадают?
Виталий
нда… попадают через портал например
Виталий
странные вопросы
Виталий
вопрос у меня концептуальный
Виталий
ни в одной библиотеке я не увидел императивной имплементации отображения модалок
Александр
а слова modal и open вам ни о чём не говорят? Думаю если вам не понятен мой вопрос то вопрос не к вам.
Если вы про то чтобы передавать куда-то React.Element, то такой паттерн используют. Можете и модальные окна так реализовать, но при такой реализации есть куча проблем... хотя чего это я, вопрос не ко мне же
Виталий
везде декларативное
Aliaksandr
Я тоже новичок, пас как и Aleksandr
Виталий
вот и вопрос «почему»
Виталий
Я видел такой подход
Где? Есть ссылка?
Александр
вот и вопрос «почему»
Неудобно, не гибко
Виталий
в чём неудобство конкретно?
Aliaksandr
Aleksandr, пасуй :)
wolfe
вот и вопрос «почему»
Легче дебажить, проще передавать данные, нет необходимости в какой-то императивной абстракции
Александр
Где? Есть ссылка?
Нет ссылки, но там был dispatch редукс акшена, в качестве пейлоада шёл react.Element с модалкой. Это не либа была а проект
Виталий
что значит легче дебажить? почему легче?
Александр
Aleksandr, пасуй :)
Перед чем? Я видел и такой и другой подходы в действии, мне то понятно как лучше.
wolfe
что значит легче дебажить? почему легче?
Используйте реплай для ответа. Разметку заголовка модалки императивно переопределять, к примеру, не очень удобно
wolfe
что значит легче дебажить? почему легче?
PropTypes или типы облегчат дебаг
Виталий
Используйте реплай для ответа. Разметку заголовка модалки императивно переопределять, к примеру, не очень удобно
ок. Разметку можно так же передавать императивно this.modal.open(<div>content<div>, config). В конфиге можно передать загаловок.
Aliaksandr
Перед вопросом. Идея одна и та же. Вопрос выноса в отдельную функцию
Александр
wolfe
Помимо этого, в ней может быть ещё какой-то динамический контент
Aliaksandr
Представляете себе такую функцию с кучей аргументов? Ее ещё и вызвать надо
За свой опыт работы с реактом везде к этому и приходило. Поддерживать нереально
Виталий
Представляете себе такую функцию с кучей аргументов? Ее ещё и вызвать надо
Если нужно передать контент заголовка вы его так же будете передавать в модалку, но только в render методе. Что там что там одинаковое кол-во кода.
wolfe
Если нужно передать контент заголовка вы его так же будете передавать в модалку, но только в render методе. Что там что там одинаковое кол-во кода.
В рендер-методе этой разметке самое место. К слову, у Antd есть императивная реализация уведомлений, если не ошибаюсь
Александр
Всем привет. Задался таким вопросом: почему модальные окна в реакте задаются декларативно (а не императивно). Ведь можно было бы сделать вот так: class App extends React.Component { constructor() { super(); this.handleClick = this.handleClick.bind(this); } handleClick() { this.modal.open(<div>Some content of modal.</div>); } render() { return (<button >Click me to open modal</button>); } } Почему так не делают? Почему вместо императиного стиля используют декларативный? Т.е. в рендер методе прямо указывают <modal isOpen = {this.state.isOpen}>…some content</modal>?
Если серьезно к вашему вопросу, то дело в паттернах применяемых в реакте. При вашем подходе где будет хранится состояние открыт/закрыт о модальном окне? В менеджере модального окна this.modal? А если вам надо на основе этого состояния что-то отрендерить, как поступите? Делать подписки типа this.modal.onClose/onOpen? В реакте типичный паттерн - разметка является функцией от пары (props, state). И при таком подходе естественное решение прим клике на кнопку открытия окна не выполнять императивные действия по отправке модального окна кому-то кто его отрисует, а просто изменение стейта : isOpen:true.
Виталий
https://ant.design/components/notification/
Спасибо. Вот тут я вижу императивный стиль впервые. Интересно почему это так редко применяется.
Александр
Допускаю вполне что может понадобится
wolfe
Спасибо. Вот тут я вижу императивный стиль впервые. Интересно почему это так редко применяется.
В уведомлениях, как правило, не используется динамический контент и нет нужды в управлении над ним
Oleg
Как фиксить баг, который локально не воспроизводится?
Александр
Как фиксить баг, который локально не воспроизводится?
Лезть туда где воспроизводится... если есть возможность
Oleg
Лезть туда где воспроизводится... если есть возможность
А самое забавное, что у меня не работает одно, у другого другое.
Oleg
Красиво.