Valentin
Пиздец. Что такое переменная a? Ты кот, черепашка, носорог?
Roman
Пиздец. Что такое переменная a? Ты кот, черепашка, носорог?
очевидно же, что приложение про алфавит, и это переменная буквы А
Andrei
Пиздец. Что такое переменная a? Ты кот, черепашка, носорог?
😂 впринципе хороший naming convection. Чем выше переменная, тем меньше по алфавиту буква
Andrei
Локальные маленькими, глобальные большими
Valentin
Крч. Это черепаший язык. Я его не понимаю.
Dmitry
Что решает иммутабл? Кроме методов для работы с данными. Он быстрый? Стоит ли его юзать? При апдейте поля на те же данные он вернёт старую ссылку?
Andrei
Что решает иммутабл? Кроме методов для работы с данными. Он быстрый? Стоит ли его юзать? При апдейте поля на те же данные он вернёт старую ссылку?
он создает мапу из обьектов и позволяет быстро менять данные + при работе с ним ты будешь получать постонно новые данные
Alexey
Что решает иммутабл? Кроме методов для работы с данными. Он быстрый? Стоит ли его юзать? При апдейте поля на те же данные он вернёт старую ссылку?
только косяк жабаскрипта в том, что сложные сущности по ссылке передаются и нет нормальной возможности deep copy сделать
R
чатик, я давно не реализовывал drag and drop в своих проектах. react-dnd все еще лучшая библиотека для сих целей?
Vladimir
чатик, я давно не реализовывал drag and drop в своих проектах. react-dnd все еще лучшая библиотека для сих целей?
если надо просто пересортировывать элементы в списке, то мне нравится https://github.com/clauderic/react-sortable-hoc
Andrei
https://codesandbox.io/s/reactredux-qylcg почему при проведении на dsds постоянно обновляются компоненты? хоть я не выдергиваю из ребенка меняющиеся данные. НИД ХЭЛП. как обойти это?
R
если надо просто пересортировывать элементы в списке, то мне нравится https://github.com/clauderic/react-sortable-hoc
не, нужен именно драг и дроп из контейнера с совокупностью элементов в условную корзину
Тимофей 🛴
Что решает иммутабл? Кроме методов для работы с данными. Он быстрый? Стоит ли его юзать? При апдейте поля на те же данные он вернёт старую ссылку?
Написано же все в доке) вернет новую ссылку. Мне не понравилось его юзать, потому что это дополнительная абстракция и нужно будет делать компоненты которые знают что в них приходит immutable. Если есть какие то сложные апдейты и они не упрощаются с помощью нормализации и хелперов, можно заюзать immer, но у него тоже есть ньюансы
Тимофей 🛴
Мне говорят го иммутабл. Круто так. Если апдейт со старыми данными то ререндера не будет. Крик
Ну ты видимо не понял что они имели ввиду, или они не поняли как работает immutable. Это просто хэлпер для иммутабельного обновления и все
Sergey
Ребят, подскажите по normalizr https://github.com/paularmstrong/normalizr. У меня объект с данными. { banners: [], promotions: [] } У каждой акции есть свои баннеры. Нужно вытащить часть данных из акции и положить в общий стор баннеров. Т.е. получить что-то типо такого { entities: { banners: { '1': { id: 1, images: [] } '2': { id: 1, images: [], promotion: 10 } } } } В доке вижу processStrategy, но не пойму это подходит для моего кейса или нет? Т.к. по api у него processStrategy: (value, parent, key) (а если parent будет не promotion?)
Dmitry
Ну ты видимо не понял что они имели ввиду, или они не поняли как работает immutable. Это просто хэлпер для иммутабельного обновления и все
я знаю я про то что мне сказали он помогает при перерендере если апдйт равен предыдущему он вернет старую ссылку но это же не верно ? он всегда новую ссылку вернет даже если данные не поменялист
Andrei
https://codesandbox.io/s/reactredux-qylcg почему при проведении на dsds постоянно обновляются компоненты? хоть я не выдергиваю из ребенка меняющиеся данные. НИД ХЭЛП. как обойти это?
по этому моменту. Можно данный эффект обойти с использованием connect. однако есть ли более современнные технологии для такого эффекта? ибо я не любитель пенсионеров :)
Anonymous
Всем привет. почему когда я изменяю state а дальше пытаюсь его вывести в консоль он пустой?
Adv0cat
я знаю я про то что мне сказали он помогает при перерендере если апдйт равен предыдущему он вернет старую ссылку но это же не верно ? он всегда новую ссылку вернет даже если данные не поменялист
Эта либа, просто залог того, что ты ничайно не сделаешь мутацию нигде, даже при большом желании. Ибо если ты сделаешь мутацию объекта, редакс не обновит стейт, что не повлечет за собой перерендер, вот и всё
Александр
Всем привет. почему когда я изменяю state а дальше пытаюсь его вывести в консоль он пустой?
Код покажите, но подозреваю что сразу после setState делаете консоль лог, а setState асинхронный
Anonymous
Код покажите, но подозреваю что сразу после setState делаете консоль лог, а setState асинхронный
setstate значит асинхронный? не знал и как допустим решить эту проблемму?
Александр
setstate значит асинхронный? не знал и как допустим решить эту проблемму?
Это не проблема, асинхронный значит что обновление стейта будет просхожить несинхронно...покажите код, я лишь предположил, гадать то можно сто лет так
Adv0cat
setstate значит асинхронный? не знал и как допустим решить эту проблемму?
как любую асинхронную проблему))) событиями или редаксом к примеру)
Александр
как любую асинхронную проблему))) событиями или редаксом к примеру)
А редакс сам по себе синхронный и не решает такие проблемы
Anonymous
async/await
во спасибо
Александр
async/await
А от этого асинхронность не уйдёт, и ещё, вы со setState предлагаете ему делать await? :(
Andrey
да уж, ща тут ему насоветуют можно еще генераторами напилить, шоб совсем весело было
Anonymous
А от этого асинхронность не уйдёт, и ещё, вы со setState предлагаете ему делать await? :(
а как быть то? я к тому что после добовления мне надо подсчитать общую сумму из масива
Александр
Egor
Никому не надо
Александр
а как быть то? я к тому что после добовления мне надо подсчитать общую сумму из масива
В рендере и считай, зачем в стейт пихать то что вычисляется
Andrei
код, а потом вопрос)
можешь помочь по вчерашней проблеме?) я репродьюснул ее
Adv0cat
Да. Но мой поинт не в мутации. Он не делает новый объект если не нужно. Выше вроде проверили. Я потом проверю
Он делает новый объект потому, что ты его просишь в этом смысл же иммутабельности поидее, даже если значения одинаковые) Хотя могу ошибаться)
Egor
нет, лол
Если у человека нет редакса?
Vlad
npm i redux?
Andrey
Если у человека нет редакса?
то ему повезло пущай эффектор ставит, и в путь если все же нужен редакс - поставить дело 1й минуты
Александр
Если у человека нет редакса?
А без кода там непонятна суть даже, все советы ни к чему не приведут, это словоблудие все, пока не покажут код
Egor
npm i redux?
ну вот не хочет он редакс и эффектор не хочет ему хватает одного стейта
Anonymous
А без кода там непонятна суть даже, все советы ни к чему не приведут, это словоблудие все, пока не покажут код
this.setState({ options:this.state.options.concat(item) }); let total = this.state.options.reduce((a, b)=>{ return a + b.price }); this.setState({ total: total })
Alexey
Эм. А как ты предлагаешь?
не очень понял, _что_ как я предлагаю?
Vlad
ну тогда в рендере вызвать функцию
Andrei
Adv0cat https://codesandbox.io/s/reactredux-qylcg . если использовать connect- проблем нет, однако даже на сайте по хукам у react написано, что таким образом происходит мемоизация для хуков. однако если родитель меняется- он меняет ребенка не в зависимости от селектора. https://react-redux.js.org/next/api/hooks#using-memoizing-selectors
Александр
this.setState({ options:this.state.options.concat(item) }); let total = this.state.options.reduce((a, b)=>{ return a + b.price }); this.setState({ total: total })
Не кладите total в стейт, вычисляйте по месту, и не обращайтесь через this.state к стейту, используйте каллбек в setState
Anonymous
[...this.state.options, item].reduce((a,b) => {...})
в setstate рекомендуешь использовать методы?
Александр
а понял. setstate в самом конце кароче сделать
Вообще не держите total в стейте, в рендере или где это значение понадобится там и вычисляйте
Anonymous
Вообще не держите total в стейте, в рендере или где это значение понадобится там и вычисляйте
понял, что нужно держать в любом свойстве допустим this.total, а в рендере его показывать
Александр
понял, что нужно держать в любом свойстве допустим this.total, а в рендере его показывать
Нет... не нужно нигде держать total, это не нужно, там где используете его там и вычисляйте но сохранять его не надо
Andrei
не надо его нигде хранить, ты его можешь считать. у тебя есть все входные данные
Anonymous
Нет... не нужно нигде держать total, это не нужно, там где используете его там и вычисляйте но сохранять его не надо
поняль... Просто потом это все должно уходить в корзину через redux, я думал что тотал стоит использовать лиш потому что он в корзине заного не считал
Andrey
опаньки, а вот и редакс подъехал "не наадо, не хоочет"
Anonymous
А что смущает? Упадёт производительность?
да не просто изначально так думал. ясно, блогадарен что некоторые моменты обьяснили
Andrey
не редакс могет, мобx не предлогать
это я к тому, что тип сверху аргументировал свои асинки тем, что мол не редаксом же решать редакс могет, к слову, только в бойлерплейт и угнетение разработчиков, мобкс не предлагаю (эффектор)
Андрей