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