Daniil
зачем он тут
Maksim
именно useReducer там и нужен
Daniil
подробней
Daniil
какие тут вычисления что нужен хук ради такого?
D_d
щас почитаю о нем. раньше с хуками не сталкивался. вот только возвращаюс к реакту после годового растования
Maksim
подробней
удобнее декомпознуть на функции которые будут собирать все это хозяйство каждый раз
D_d
у мен прото функциональный компонент. использую react-material
Daniil
зачем это ему нужно
Eugene
ребята, использовал кто-нибудь такое в webstorm? System.config({ "paths": { "~/*": "./src/*" } });
Daniil
ему нужно заменить одно значение у одного элемента массива
Maksim
какие тут вычисления что нужен хук ради такого?
вычисления в том что нужно пересоздавать вложенные объекты
Daniil
понял - принял
Daniil
я говорю, спредом пройтись с созданием новой константы, изменить значение, занести в стейт, это один из самых очевидных вариантов
Daniil
без нагромождения хуков
D_d
в реакте мутировать типа табу да?
Daniil
это не мутация будет
Daniil
"Теперь в шаблоне по клику на элемент YouTube хочу проставлять ему folded = true/fasle"
Daniil
хз
D_d
из шаблоно когда я кликаю я знаю индекс элемента который хочу менять
Maksim
ну если индекс можно не искать можно это и спредом собрать, выглядеть будет как говно правда
Daniil
возможно с useReducer проще и быстрее будет, надо проверить
D_d
это уже сделано
Maksim
возможно с useReducer проще и быстрее будет, надо проверить
Да надо нормализовывать, так тяжко будет в любом случае
D_d
не понимаю все равно было бы круто если можно было так сделать useState({...navItems, navItems.socialNav[0].folded: true}) ))
Bogdan
Да надо нормализовывать, так тяжко будет в любом случае
а вот с нормализацией, нужно хранить id елементов и сами елементы, что бы по id достать ведь?
D_d
согласен. но в данном случае решил обойтись без id
Maksim
а вот с нормализацией, нужно хранить id елементов и сами елементы, что бы по id достать ведь?
Я имел в виду больше что превратить в более плоскую структуру
Maksim
Это не один стейт с двумя массивами должен быть, а два стейта и в каждом по одному
Bogdan
Я имел в виду больше что превратить в более плоскую структуру
я просто видел, как в redux-query хранилось это, типо писалась схема, сохранялись сущности и массивы с id, по id все доставали
D_d
ну по идее это все навигация. поэтому удобно ее хранить в одном объекте
Daniil
ну как видишь - нет
Vyacheslav
Может кто рассказать тайну вокруг дебоунса, испокон веков, дебонсил функции и только функции, собственно в этом есть смысл, но еще пару месяцев назад перешел на модные онли функциональные компоненты и нужен был хук на дебоунс, написать за 3 минуты написал , но решил почекать у кого как это работает, так вот во всех туториалах, статьях и даже пакетах, useDebounce дебонсит значение Карл, не функцию а значение, можете поделится кто знает зачем и почему так делают. Действительно интересно
Andrew
Народ, не пойму как сделать так, что б при перетаскивании ТОЛЬКО ФАЙЛА в область, появлялся такой блок, есть идеи?
GG
Если его почитать, то можно обнаружить там разные интересные события, одно из которых срабатывает в начале перетаскивания. Где можно чекнуть перетаскиваемый объект на тип файла, и с помощью нехитрых манипуляций с жс и ксс показать такую модалку
Andrew
у меня идёт блок drag and drop, который наложен сверху другого блока, но мне надо его показать только тогда когда в том диапазоне будет файл, вот в чём проблема, не пойму как это сделать
GG
OnDragEnter, OnDragOver
Anton
Помогите пжлст решить задачку на логику ) Надо отрисовать контент, у которого совпадает айди, при этом, чтобы он не дублировался. То есть если у 2-х элементов в массиве одинаковый айди, надо отрисовать его только 1 раз, а не 2. У меня в итоге сейчас они дублируются. Как сделать так, чтобы не было этого? questions.map((question, index) => ( <Component questions={questions.filter( question => question.id=== questions[index].id )} /> ))
GG
первая ссылка в гугле. хм
Paul
Может кто рассказать тайну вокруг дебоунса, испокон веков, дебонсил функции и только функции, собственно в этом есть смысл, но еще пару месяцев назад перешел на модные онли функциональные компоненты и нужен был хук на дебоунс, написать за 3 минуты написал , но решил почекать у кого как это работает, так вот во всех туториалах, статьях и даже пакетах, useDebounce дебонсит значение Карл, не функцию а значение, можете поделится кто знает зачем и почему так делают. Действительно интересно
Когда дебансишь функцию, то дебансится лишь та логика, которая заключена внутри функции. Когда дебансишь значение, то в принципе, ты можешь накрутить на это значение еще 100500 манипуляций, и тебе не придется под каждую манипуляцию дебансить функцию. Так что, в этом есть логика. Правда вот смотрю на типичную реализацию useDebounce и это выглядит как дикий оверхед. Думаю, есть смысл дебансить значения только в случае, когда от него реально много всего зависит в компоненте
GG
спасибо )
мне это решение больше всех понрав uniq = (arr) => arr.filter((elem, pos, arr) => ( arr.indexOf(elem) == pos ))
Andrew
https://developer.mozilla.org/en-US/docs/Web/API/HTML_Drag_and_Drop_API/File_drag_and_drop#Define_the_drop_zone
не пойму за что тут отвечает ondragover="dragOverHandler(event);" что мне надо запихнуть в функцию dragOverHandler(event)
GG
с примерами еще
GG
что из статьи не ясно?
Anton
мне это решение больше всех понрав uniq = (arr) => arr.filter((elem, pos, arr) => ( arr.indexOf(elem) == pos ))
Красиво, буду сейчас думать, как его докрутить. Понял, что у меня чуть другой кейс: можно отобразить дубликаты, но только один раз. То есть, если у элемента 1 и 2 одинаковые айди, то надо показать эти два элемента. По дефолту показывается сейчас 2х2 = 4 элемента.
Daren
Подскажет кто нибудь, как можно в Ant Design  прокрутить конетную область без вот таких костылей ?
Henry
👐
Henry
Есть ли эффективный способ реагировать на языковые опции?
Henry
для перевода
Henry
спасибо тебе
Artem
Помогите разобраться, пожалуйста. Ситуация такая - рендер роута не хочет заново рендерить передаваемый ему компонент. Суть в том, что есть компонент прелоадера, внутри дочерним передан компонент, который должен отрендериться после отработки прелоадера (прелоадер носит чисто косметический характер). Но конструкция свитч-роуты каким-то образом то ли сохраняет стейт прелоадера то ли просто меняет проп у него. Суть в том, что прелоадер отрабатывает только при первой загрузке сайта. Вот код: App: <Switch> <Route exact path="/" render={() => ( <Preloader> <Home /> </Preloader> )} /> <Route path="/about" render={() => ( <Preloader> <About /> </Preloader> )} /> </Switch> Вот прелоадер: function Preloader({children}: any) { const [isLoaded, setLoad] = useState(false); const [fillBar, setFillBar] = useState({ width: '0%' }); useEffect(() => { setTimeout(() => setLoad(true), 1800); setTimeout(() => { setFillBar({ width: '100%' }); }, 400); }, []); if (!isLoaded) { return ( <NuTutKoro4ePreloader/> ); } return children; }; И боль в том, что при переходе между роутами он после первой загрузки просто рендерит дочерний компонент. Ставил консоль лог на isLoaded, ожидаемо false... true ... и далее при всех переходах оно просто тру.
Anonymous
Какой ужас
Artem
Какой ужас
а именно?
Андрей Чайковский
а именно?
заново* :)
Artem
заново* :)
заново что?)
Андрей Чайковский
заново что?)
Опечатка у тебя в тексте
Artem
Опечатка у тебя в тексте
ну да, именно о грамматической проверке сообщения я и просил
Artem
Чет(разг.), чем дальше, тем больше складывается впечатление, что в данном чате все сразу родились филологами и сеньор-разрабами. Просишь помощи, получаешь ковш гуано. Я понимаю, что самому в доке надо жить. Но я два дня потратил уже на этот буллшит. И вместо того чтобы направить, давайте побудем токсичными. Здравствуй, 2к19.
Китикет
Помогите разобраться, пожалуйста. Ситуация такая - рендер роута не хочет заново рендерить передаваемый ему компонент. Суть в том, что есть компонент прелоадера, внутри дочерним передан компонент, который должен отрендериться после отработки прелоадера (прелоадер носит чисто косметический характер). Но конструкция свитч-роуты каким-то образом то ли сохраняет стейт прелоадера то ли просто меняет проп у него. Суть в том, что прелоадер отрабатывает только при первой загрузке сайта. Вот код: App: <Switch> <Route exact path="/" render={() => ( <Preloader> <Home /> </Preloader> )} /> <Route path="/about" render={() => ( <Preloader> <About /> </Preloader> )} /> </Switch> Вот прелоадер: function Preloader({children}: any) { const [isLoaded, setLoad] = useState(false); const [fillBar, setFillBar] = useState({ width: '0%' }); useEffect(() => { setTimeout(() => setLoad(true), 1800); setTimeout(() => { setFillBar({ width: '100%' }); }, 400); }, []); if (!isLoaded) { return ( <NuTutKoro4ePreloader/> ); } return children; }; И боль в том, что при переходе между роутами он после первой загрузки просто рендерит дочерний компонент. Ставил консоль лог на isLoaded, ожидаемо false... true ... и далее при всех переходах оно просто тру.
Делай консоль лог в useEffect
Китикет
Посмотри что будет при повторном заходе
Eugene
babel-plugin-root-import скиньте кто-нибудь настройки своего конфига, если кто ставил такую штуку)
Китикет
Посмотри что будет при повторном заходе
Скорее всего ты что-то упустил и они не анмаунтятся
Китикет
Если не поможет, в песочницу)