Китикет
😂
Согласен, смешно
Stanislav
{el}
Не работает
Eugene
Эх, люди стали забывать настоящие срачи.... fetch vs axios 😏
Eugene
axios для редакса
Не многие знают- не многие вспомнят 😅
Vitalii
вопрос не по теме, но кто-то знает либы которые позволяют получить характеристики компьютера типо тип ЦП, его частота, разъемы ОЗУ
G.
Вот тебе как раз пригодится: https://habr.com/ru/company/inobitec/blog/481288/#createReducer
С тем как оно выглядит/работает я знаком, я имел ввиду опыт использования на проектах/возникшие проблемы/неудобства
Китикет
😂
Извини, но у тебя просто ужасный код в статье
Stanislav
{el}
Есть ещё идеи?
Александр
С тем как оно выглядит/работает я знаком, я имел ввиду опыт использования на проектах/возникшие проблемы/неудобства
я как раз таки описываю это внедрение, вы можете комбинировать immer и обычный способ обновления состояния в разных редьюсерах, поэтому проблем не возникает
Китикет
Как вывести компоненты из массива динамечески? Пример: arr = ['Home', 'About', 'Contacts'] arr.map(el => <el /> P.S. Пример выше не работает
По одной строке не вывести, тебе нужен сам компонент По строке можно вывести лишь теги вроде button
Александр
Извини, но у тебя просто ужасный код в статье
А вы считаете что селекторы это жизненная необходимость
arthur
А вы считаете что селекторы это жизненная необходимость
ты просто не видел огромных селекторов
Китикет
А вы считаете что селекторы это жизненная необходимость
Мое мнение тут значения особо не имеет, это очевидный факт
VACincoming
Есть ещё идеи?
<p> {el} </p>
Eugene
Ооо, люди в конекте/useSelector пишут state.blabla.blabkbala?
Vitalii
из браузера ты это не получишь
мне нужна информация о моем компе только, мб есть что то
Maksim
Ребят, вот у меня метод inputChange у родителя, а как его передать в компонент InputName?
Китикет
Китикет
Селекторы к тому же не только для мемоизации, но и для композиции
Maksim
Да, а как это делать через пропсы? Только начал изучать жс и реакт
Китикет
Сами компоненты есть. Мне нужно их только вывести из массива
Так у тебя в примере в массиве лежат строки, а не компоненты. А компоненты выводи на здоровье: const components = [Home, About] components.map(Component => <Component key={} />)
Maksim
Сейчас попробую, спасибо
Andrew
Да, а как это делать через пропсы? Только начал изучать жс и реакт
и внутри inputChange ловишь, а вообще советую почитать доку, там подробно всё расписывается, потому что пропсы - это базовая вещь реакта
🦜
мне нужна информация о моем компе только, мб есть что то
браузер не дает такую инфу. Максимум можно по видеокарте получить информацию
Maksim
Да, я поэтому и пытаюсь разобраться как это работает
Китикет
Так этот массив то в json лежит. Я его парсю, чтобы потом из этого массива вывести компоненты
Сделай обьект { Home: HomeComponent } По строке будешь получать сам компонент и уже делать с ним что надо
Daniil
В реакт компоненте есть вызов апи, который после читает стейт и делате некоторые выводы, но есть проблема, что стейт несколько раз обновляется в течении pending от АПИ, стейт уже устарел, да, есть setState(v => v.), но у нас React.useReducer только [state, dispatch]
Daniil
т.е старое замыкание, не тот объект уже, который себя выдаёт
R
ребят, кто пользуется react-dnd: ни у кого не возникало проблем с его работой на ipad 5 и ниже? в последних версиях react-dnd видимо произошли какие-то изменения, повлекшие за собой ошибку в старых версиях ipad (ipad 6 при той же 11 оси ошибок не выдает) сообщение выглядит так: TypeError: o.document.elementsFromPoint is not a function. (In 'o.document.elementsFromPoint(l.x,l.y)', 'o.document.elementsFromPoint' is undefined)"
Александр
Селекторы к тому же не только для мемоизации, но и для композиции
И почему же обычные функции здесь не подходят? Зачем использовать дополнительную либу для создания абстракций? Селекторы необходимы, когда имеются просадки в производительности из-за перерасчетов. До этого момента использовать их в каждой дырке не эффективно.
Александр
http://optimization.guide/
Тимофей 🛴
11
Ну наверное нужен полифил или откатываться
R
Ну наверное нужен полифил или откатываться
ок, спасибо. поресерчу в этом направлении
Daniil
В реакт компоненте есть вызов апи, который после читает стейт и делате некоторые выводы, но есть проблема, что стейт несколько раз обновляется в течении pending от АПИ, стейт уже устарел, да, есть setState(v => v.), но у нас React.useReducer только [state, dispatch]
выяснил в чём проблема: отдаю коллбек рендера axios onUpload (чтобы отслеживать прогресс), коллбек вызывается несколько раз, но все внутри ссылается на старое замыкание, как бы я не читал стейт в нём, он всегда, сука, старый
Stanislav
Сделай обьект { Home: HomeComponent } По строке будешь получать сам компонент и уже делать с ним что надо
Не выходит. Смотри.. Вот массив: "services": [ { "tag": "tests", "name": "Тесты", "component": "Tests" }, { "tag": "learning", "name": "Обучение", "component": "Learning" } ] Он лежит в json. Ты говоришь по строке получать компонент, но в json я не могу сохранить компонент, только строку с названием компонента
Китикет
И почему же обычные функции здесь не подходят? Зачем использовать дополнительную либу для создания абстракций? Селекторы необходимы, когда имеются просадки в производительности из-за перерасчетов. До этого момента использовать их в каждой дырке не эффективно.
Во-первых, какие абстракции? Селекторы не добавляют никаких дополнительных абстракций. Во-вторых, любое приложение больше тудушки нуждается в сложных вычисляемых селекторах. В-третьих, преждевременной оптимизацией, как ты это выставляешь, селекторы не являются, так как они напрямую влияют на расширяемость приложения. В-четвертых, createSelector не используется для получения данных напрямую из стора (без доп. вычислений), в таком случае используются обычные функции, которые тоже концептуально являются селекторами. Естественно reselect нужно использовать не в каждом кейсе, но в приложении больше тудушки такие кейсы где-то обязательно есть.
Александр
Во-первых, какие абстракции? Селекторы не добавляют никаких дополнительных абстракций. Во-вторых, любое приложение больше тудушки нуждается в сложных вычисляемых селекторах. В-третьих, преждевременной оптимизацией, как ты это выставляешь, селекторы не являются, так как они напрямую влияют на расширяемость приложения. В-четвертых, createSelector не используется для получения данных напрямую из стора (без доп. вычислений), в таком случае используются обычные функции, которые тоже концептуально являются селекторами. Естественно reselect нужно использовать не в каждом кейсе, но в приложении больше тудушки такие кейсы где-то обязательно есть.
Большинство вычисляемых данных должно вычисляться до попадания в стор специальными методами. Я не говорю что селекторы вообще не нужно использовать, но их маленькое кол-во говорит о правильном хранении данных.
Stanislav
в json храни название компонетнов, а в другом массиве сами комопнеты и потом выбирай нужные комопнеты по названию
Т.е. создавать ещё один массив с компонентами? Я как раз пытаюсь этого избежать) Одним массивом хотел и данные вывести компонент
Китикет
Большинство вычисляемых данных должно вычисляться до попадания в стор специальными методами. Я не говорю что селекторы вообще не нужно использовать, но их маленькое кол-во говорит о правильном хранении данных.
То есть ты предлагаешь миллион разных производных от данных хранить в сторе? Вместо того, чтобы иметь изначальные данные и без каких-либо проблем получать от них нужную производную?
Китикет
Более того, такую функцию "нормализации" (дебилизации) нужно будет постоянно дополнять при необходимости)
Китикет
Теперь учтем что при изменении данных с клиента, нужно ее вызывать заново, соответственно нужно ограничить те части, которые без необходимости будут заново вычислены. (ух, сколько же это костылей надо написать)
Александр
То есть ты предлагаешь миллион разных производных от данных хранить в сторе? Вместо того, чтобы иметь изначальные данные и без каких-либо проблем получать от них нужную производную?
Я не обрабатвыю в голове все варианты возможного использования, данные можно нормализовывать в общем виде, построение несложного АСТ как пример. Это лучше чем, к примеру, хранить массив объектов и делать на нем адейты по айди.
Александр
а если значения изменяются динамически? юзер-инпут т.е.
Нет никаких проблем хранить юзер инпут с помощью редакс
wolfe
Нет никаких проблем хранить юзер инпут с помощью редакс
ну вы же без селекторов хотите обрабатывать эти данные
deSilence
Вы о чем, какие селекторы
wolfe
Это невозможно, по вашему?
есть таблица услуг, к примеру. юзер добавляет новую строку и нужно сразу же пересчитать итог, например. как это должно работать без селекторов?
wolfe
при чем в этом селекторе еще могут быть какие-нибудь манипуляции с коэффициентами, завязанными на юзере конкретном. тут уже нужна композиция. не понимаю, о чем разговор ))
Александр
Лол, а что ты подразумеваешь под "аст" в данном случае?
Дерево со свойствами, добавить легко, изменить тоже.
deSilence
Я не особо доганяю о чем вы, но почему нельзя массив объектов, где ключи все нужные свойства?
Anonymous
Здравствуйте! Что лучще для Junior'a учить, Next.js или Gatsby?
Китикет
Дерево со свойствами, добавить легко, изменить тоже.
То есть добавился товар в стейт, а ты такой берешь, заново вычисляешь свойство totalPrice и обновляешь в своем дереве?)
wolfe
Если дела обстоят так серьёзно, то это, естественно идеальный пример для применения селекторов.
но я согласен, что приведение к объекту надо использовать, но не всегда. иногда избыточно
Александр
В абстрактные синтаксические деревья довольно часто используемая и эффективная вещь
Александр
Наш любимый джс, это кстати и есть АСТ
Китикет
При использовании extraReducers это не так уж и сложно
Понятия не имею что такое extraReducers) Кстати ты же говорил что селекторы это дополнительная абстракция, а как же "абстрактное" синтаксическое дерево?
Vjačeslavs
Одно приложение условно поделено на две части - клиентская часть и админка. Есть возможность разделить код так, чтобы код админки не подгружался, когда загружается клиентская часть? Ну, альтернативы разделению приложения на два разных