Timofey
N
В функции типа так: test = () => {}
Nikolai
замыкание? это как?
Просто перенеси на 3 строчки выше) а потом в учебнике по js почитай про замыкание
Maxim
замыкание? это как?
Если вы положите константу перед классом - то это будет как бы в замыкании. Хотя это и не очевидно.
Dmitry
а такое тебе не о чем не говорит?
Просто узнай когда и как реф добавляется
Dmitry
а такое тебе не о чем не говорит?
Это написано к тому что почти все без рефа можно сделать
Timofey
Короче задача- выводиться огромный список элементов, есть кнопка которая реализует скролл до опредленного элемента. Какие решения можете предложить?
Андрей Чайковский
ух тыыы, да ты мне америку открыл
Видимо, открыл, если ты не знал, что в дом нужно лазить посредством апи, а не напрямую
Timofey
ref
массив рефов?
Dmitry
ref
А реф причём Скрол к определённому элементу В списках с виртуализацией это высчитывается
Frontend Priest
А где гарантия что у них есть опыт. Я на реакте 3 года пишу. Если кто-то решил меня учить то пожалуйста делать это нужно с примерами и аргументами
Плевать сколько. Понять язык, фреймфорк = понять его культуру, и ты не понял реакт. Ты суёшь императивность туда, где существуют только функциональность и реактивность*. Ты ищешь по класснейму или айдишнику, то есть полагаешься на строковую константу, которая может при ближайшем изменении потерять актуальность. Тем, кто реверсит твой код, ты оставляешь неявно связанные элементы и ребус о том, как оно работает. Тебе никто ничего не должен доказывать. Если ты юзаешь антипаттерны и отступление от конвенций - проблемы твои, твоих коллег и твоей компании.
Тимофей 🛴
А где гарантия что у них есть опыт. Я на реакте 3 года пишу. Если кто-то решил меня учить то пожалуйста делать это нужно с примерами и аргументами
1. Когда что то меняешь в доме в обход React, он может вести себя непредсказуемо. 2. Легче работать когда View просто отображение какого то состояния, твой элемент который ты хочешь найти отображение какого то куска состояния, работай с этим куском и делай так что бы элемент рендерился как ты хочешь.
Timofey
А как ты сейчас делаешь
в методе render есть list.map((el, i) => <div id=listItem${i} />)
Dmitry
в методе render есть list.map((el, i) => <div id=listItem${i} />)
Это не правильно. Тут костылями скролить придётся
Maxim
Короче задача- выводиться огромный список элементов, есть кнопка которая реализует скролл до опредленного элемента. Какие решения можете предложить?
Располагать элементы в контейнере через position: absolute, отрисовывать только те, которые нужно в данный момент, перерисовывать по скроллу. Хорошо, если у элементов одинаковая высота - тогда вообще нефиг делать.
Timofey
Это не правильно. Тут костылями скролить придётся
onClick(() => { document.getElementById(listItem${index}) }) и все
Dmitry
onClick(() => { document.getElementById(listItem${index}) }) и все
3 года на реакт потратил И все Уже лучше якорь
Max
Короче задача- выводиться огромный список элементов, есть кнопка которая реализует скролл до опредленного элемента. Какие решения можете предложить?
Делал такое недавно. На уровне списка состояние с ид выбранного элемента списка. Этот ид летит в каждый элемент списка, если выбранный ид соответствует ид элемента делается scrollIntoView() через ref.
⇺Goga⇻
не полностью
Dmitry
Располагать элементы в контейнере через position: absolute, отрисовывать только те, которые нужно в данный момент, перерисовывать по скроллу. Хорошо, если у элементов одинаковая высота - тогда вообще нефиг делать.
Сам ты это писать будешь надцать часов и не факт что выйдет А можно взять решение где люди потратили столько часов и сделали интерфейс нормальный
Timofey
react virtualize react window Они могут скролить к индексу
ух ты, с самого начала был вопрос сука про скроллинг по индексу в react-vitualized
Frontend Priest
сколько ты пишешь на реакте?
"я дед, имей уважение к старшим"
Dmitry
ух ты, с самого начала был вопрос сука про скроллинг по индексу в react-vitualized
Я не читал все сначала. Без ответа не проследить Но тогда твой вопрос и решение ещё тупее если они с виртуализацией
Valentin
не полностью
Там должно быть про события. Есть события в жизненном цикле компонента. Так же мы можем использовать синтетические интерфейсы элементов которые отрисовываем реактом и через реф обращаться к ноде и вешать нативные события
Valentin
"я дед, имей уважение к старшим"
Ага. Давайте писать как старый пердун и никакой эволюции.
Valentin
Короче задача- выводиться огромный список элементов, есть кнопка которая реализует скролл до опредленного элемента. Какие решения можете предложить?
Ну эта задача уже давно расписана в множестве имплементаций (включая плагины для реакта). Попробуй поискать.
Vladimir F
Всем привет
Vladimir F
подскажите если есть 3 типа статуса игры 1) ready 2) playing 3) done как мне сделать проход через 2 условия чтобы в листе игр отрендерилась та которая нужна по стилям?
Yury
Проход?
Vladimir F
надо стили прикрутить по статусу игры, если бы 2 было, то тут все понятно, а вот как 3 сделать вопрос?
Yury
status == ‘ready’ ? readyStyle : status == ‘playing’ ? playingStyle : doneStyle
Sm•ok
надо стили прикрутить по статусу игры, если бы 2 было, то тут все понятно, а вот как 3 сделать вопрос?
const startView = condition && (jsx) const endView = condition && (jsx) return ( <> {startView} {endView} </> )
Sm•ok
Я если правильно тебя понял, то внутри компонента как то так.
Виктория U
Используй classnames, создай в css класс для каждого статуса, в итоге должно получиться что-то такое: let className = classnames('game-item', { [game-item--${game.status}]: game.status }); И не нужны никакие ифы. ! В квадратных скобках должны быть апострофы, здесь режутся почему-то
Vladimir F
спасибо всем чет сразу не понял как сделать
N
Почему мой map не работает когда в url находится json
Sm•ok
Парсишь джсон?
Виктория U
Sm•ok
А ну да, у тебя там объект
N
ну тогда как перебирать объект?
Sm•ok
Object.values(url).map
Sm•ok
Если тебе обязательно нужен меп. Иначе просто for in
Виктория U
Если тебе обязательно нужен меп. Иначе просто for in
Не вариант, for in лезет в прототип так же
Sm•ok
Может ему просто по ключам нужно пройтись. То тут фор ин подойдёт лучше
N
Object.values(url).map
вполне рабочий спасибо
Dmitry
Не вариант, for in лезет в прототип так же
По всем перечеляемым полям
Виктория U
Всмысле?
Помимо самого объекта for in перебирает так же и его прототип, поэтому, если в прототипе есть поля, у которых есть доступ для чтения, то они тоже будут проитерированы, а эти значения не нужны. Обычно в таких случаях используют метод hasOwnProperty, но это добавляет лишнюю проверку в итерацию, поэтому рациональнее использовать либо обычный цикл, либо forEach по ключам Object.keys.
Виктория U
Либо писать свой итератор (фишка es6), который позволит использовать for of.
Виктория U
Он не залезет в прототип и все выдаст корректно, думаю. А что за обычный цикл для объектов вы предлагаете
Обычный for, либо while по ключам Object.keys, здесь прототип не будет затронут и все отработает корректно.
Виктория U
Но лучше forEach массивов, функцию высшего порядка, чтобы не оранизовывать циклы вручную.
Виктория U
Фор не подходит для объектов
Я же написала, что проходиться циклом нужно предварительно взяв массив ключей Object.keys
Sm•ok
На сколько помню, for in в самый раз для объектов
Виктория U
Есть пруфы, что он начнет перебирать прототип?
Не начнет. Внутри forEach - обычный for
Виктория U
Боже