Eugene
и добавь pre-commit hook👀
Dmitry
а, ну и самое любимое: <Search {...{ search, someProp, handleChange: e => handleChange(e), }} />
Dmitry
завтра
Vadim
Красава
Ivansky
🙈🙊🌚
Ivansky
Здесь есть 3 ошибки, сможете найти все?
Nikita
Здесь есть 3 ошибки, сможете найти все?
Тут достаточно наследования от реализации
Ivansky
Первая
arts
Здесь есть 3 ошибки, сможете найти все?
Наследование, object, вызов setState с тем же state,
arts
А, туплю. Это ж переопределенный метод
Ivansky
Горячо
arts
Нет коллбэка
Ivansky
Неплохо, хороший поинт, но он не входил в 3 ошибки
Ivansky
Пусть это будет экстра
Nikita
Пусть это будет экстра
Переопределение метода, а потом вызов этого метода у родителя
arts
state может быть не только объектом, но и функцией
Ivansky
Не в этом проблема, вызов метода родителя нормально для ООП, вы же наследуете логику.
Eugene
🌚а использование ооп норма? :trollface
arts
Ivansky
🌚а использование ооп норма? :trollface
Это другая тема, холеварная, я скажу что не норма для Реакта вообще
Ivansky
🙈🙊🌚
1. Наследование другого компонента 2. ? 3. ? Extra: не поддерживает весь интерфейс метода setState.
Vadim
Здесь есть 3 ошибки, сможете найти все?
Вызов конструктора родителя?
Aram
Дикая херня творится со стейтом в методе setState
Ivansky
а нужно вообще setState менять?
Aram
А нужно ли вообще об этом говорить?
Alexey
а Object почему в список ошибок не включил?
Aram
Автора этого кода лишить права писать код и дело с концом
arts
Поцчему там Object, а не типы, определённые для стейта/контекста?
Ivansky
а Object почему в список ошибок не включил?
Это flow, и он на этом проекте никогда не работал, так что можно опустить.
Ivansky
Этот код работает но выкидывает 1 ворнинг.
Alexey
в смысле, это вообще не должно компилиться
Alexey
Object это конструктор объекта, а не ts-овский тип
Ivansky
При чем тут ts?
Alexey
а хз. привычка.
arts
Это другая тема, холеварная, я скажу что не норма для Реакта вообще
Судя по тому, что PropTypes в реакте, хуками там даже не пахло, так что ваиантов особо не было
Ivansky
Ivansky
Да согласен в 15 версии без классов тяжело, но наследование нужно забыть навсегда здесь.
Anastasya
Я не уверена что правильно в setState вызывать функцию из props
Anastasya
Как-то это странно выглядит
Ivansky
Второй раз спрашиваю а вообще переопределять setState нормально?
Anastasya
Этого ещё не было?)
Anastasya
Не думаю что оно вообще заведётся если переопределить
Ivansky
Почему не заведется?
Bohdan
Второй раз спрашиваю а вообще переопределять setState нормально?
что тут нормального? если никто так не делает
Anastasya
По крайней мере перерендера внутри этого компонента можно не ждать
Cenator 🐈
🙈🙊🌚
Это с продакшена или че
Alex
Второй раз спрашиваю а вообще переопределять setState нормально?
если возникают такие вопросы значит что-то пошло не так )
arts
propTypes не определены.
Ivansky
За такое убивают
Почему убивают? Какие это проблемы за собой влечет?
Eduard
@pizdec_js
Eduard
Тут автор это чата)
Anastasya
Это надо поглубже знать react) расскажешь сам? я могу предположить что так как изменение состояния через собственный setState вызывает перерендер, то тут его не будет. Не будут отслеживаться ссылки. Но тут и нет рендера никакого. Кстати, третья ошибка, наверное) рендер же обязательный
Bohdan
Или наследодателя? Как оно называется?))
Anastasya
рендер у родителя
А он же обязательный у всех классовых компонентов, не?
Anastasya
Или это надо напрямую наследоваться чтобы было обязательным
Bohdan
А он же обязательный у всех классовых компонентов, не?
Да, но он может быть определен у Collapsible в этом примере
Eduard
🙈🙊🌚
То что тут происходит называется inheritance inversion в реакте (почти)
Anastasya
Да, но он может быть определен у Collapsible в этом примере
А, логично) он же тоже может быть наследован. Туплю
Eduard
То что тут происходит называется inheritance inversion в реакте (почти)
И это норм решение только для определенных кейсах
Ivansky
Это надо поглубже знать react) расскажешь сам? я могу предположить что так как изменение состояния через собственный setState вызывает перерендер, то тут его не будет. Не будут отслеживаться ссылки. Но тут и нет рендера никакого. Кстати, третья ошибка, наверное) рендер же обязательный
Тут на самом деле реакт глубоко знать не обязательно, достаточно знать что setState это метод API React и его модификация является манки-патчингом, Должен ли CollapsibleScrollable знать о реализации класса Scrollable, определенно что нет, но он влияет на его работу. Так же как и класс Scrollable не знает о том, что кто-то его унаследует и будет модифицировать API реакта, которому он доверяет. У CollapsibleScrollable есть интерфейс как с ним взаимодействовать и это то, что он ожидает и контролирует. Если вы вдруг пришли из ООП и захотели унаследовать компонент, значит вам нужна композиция. https://ru.reactjs.org/docs/composition-vs-inheritance.html
Anastasya
А что такое манки-патчинг?
Eduard
Подмена методов
arts
Хах, в профункторе как раз в тему смехуёчек
arts
Ivansky
А что такое манки-патчинг?
Лучше прочитать где-нибудь в википедии