Cenator 🐈
Монотонная работа, думать особо не надо
Dmitriy
Вот пусть джун и чистит за собой
Прям обрадовался что я не твой джун
Dmitry
Юзать атомарные сторы
главное что то умное сморозить и кинуть ссылку
Teslachok
Монотонная работа, думать особо не надо
а вот гораздо умнее было бы дать таску написать парсер, который заменит релативы на абсы
Bogdan
Юзать атомарные сторы
а я запамятовал, что с ридаксом, если там раздельные редюсеры, то если в одном пукнуть, второй проапдейтится или нет?
Bogdan
там же все равно моностор будет
Dmitry
Там все состояние пересобирается. Другое дело если ветка не изменилась, то и ссылка на нее старая останется
Teslachok
вот что отличает джуна от миддла!
Bogdan
Там все состояние пересобирается. Другое дело если ветка не изменилась, то и ссылка на нее старая останется
ну вот комбайном собрать, в конце концов, будет моностор и даже если в одно что то дернуть, все проапдейтится?
Frontend Priest
А может, ты все таки почитаешь что такое иммутабельность, чистые функции и редьюсеры в redux?
Нет, сначала ты ознакомишься с инструментом, потом будешь оспаривать его применение и необходимость
Bogdan
ммм, каеф, вскод удалился, второй раз, хорошечно
Frontend Priest
Поуказывай мне тут
Ты токсишь абсолютно без причины на парня, который кинул решение, так что лол, буду указывать
Bogdan
ммм, каеф, вскод удалился, второй раз, хорошечно
самый каеф, на работе он тоже удалился
Anonymous
Коллеги, подскажите, почему эти стили не работают с версией material-ui меньше 4: https://codesandbox.io/s/upbeat-wright-ghvt3
Cenator 🐈
Виталий
Dmitry
в immer нету мутаций
хотя лоол рили ? Он делает мутациями иммутации? Что за изврат ?
Андрей
Ты уроки уже сделала?
@itsjohncena не тем ро даёшь.
Dmitry
хотя лоол рили ? Он делает мутациями иммутации? Что за изврат ?
что нужно курить что бы сделать такое Create the next immutable state by mutating the current one
Cenator 🐈
@itsjohncena не тем ро даёшь.
Вносить деструктив хуже чем это
Frontend Priest
ну вот комбайном собрать, в конце концов, будет моностор и даже если в одно что то дернуть, все проапдейтится?
Нет, подписки срабатывают только на свою часть стора. На какую конкретно, редакс узнаёт из mapStateToProps
Андрей
Вносить деструктив хуже чем это
Как знаешь. Но прямой переход на личности уже убирает кончтруктив из разговора. Была прямая провокация, неудивительно, что деструктив пошёл. По хорошему нужно просто обоих в ро сажать.
Cenator 🐈
Cenator 🐈
Bogdan
Как это понимать?
что то я туплю уже, в сторе запись изменить у ридакса, только подписчик тригернется? или все, что подписано на стор? Даже если не на эту запись
Bogdan
Тригернётся всё, что подписано на изменившуюся часть стейта.
что то где то читал, что прям все, видимо забыл
Frontend Priest
что то где то читал, что прям все, видимо забыл
Побалуйся в девтулзах, сразу всё наглядно будет
Андрей
что то я туплю уже, в сторе запись изменить у ридакса, только подписчик тригернется? или все, что подписано на стор? Даже если не на эту запись
В редаксе нет понятия "подписка на запись", но биндинги к твоему шаблонизатору могут обновлять только то, что изменилось в сторе.
Frontend Priest
тригернется вообще все
Лол, нет. Для того, чтобы всё не дёргалось на каждый чих, и реализован механизм подписок
Frontend Priest
эти девтулзы же?
Они у редакса одни
Frontend Priest
на какой кусок я подписался ?
Ты подписался на весь стор
Dmitry
так в ридаксе ты везде на весь стор подписываешся
Андрей
на какой кусок я подписался ?
Советую вам договориться о том что вы называете подпиской)
Dmitry
Советую вам договориться о том что вы называете подпиской)
у ридакса она одна сабскрайб конект это просто получение данных
Андрей
у ридакса она одна сабскрайб конект это просто получение данных
Уверен, что твой оппонент имеет другое представление) От этого и недопонимание.
Frontend Priest
у ридакса она одна сабскрайб конект это просто получение данных
Коннект тоже подписывает, он не может из ниоткуда триггериться на изменение куска стейта
Dmitry
Уверен, что твой оппонент имеет другое представление) От этого и недопонимание.
ну тогда я допишу я о сабскрайб ридакса где подписка на стор комбайн редьюсеров соберет обьект из состоний при апдейте он кусок за апдейтит и остальное передаст по ссылке по этому коннект который подписан на стор может сравнить что обновилось
Michail
Подскажите пожалуйста, как правильно менять состяоние в таком state, чтоб сохранить предыдущие
Dmitry
он же на стор подписывается не часть
и через mapState можно данные из рут стейт получить
Андрей
Коннект тоже подписывает, он не может из ниоткуда триггериться на изменение куска стейта
Выполни эксперимент. В useSelector или mapStateToProps сделай консольлоги. Увидишь, что они вызываются на каждое изменение стора.
Bogdan
Выполни эксперимент. В useSelector или mapStateToProps сделай консольлоги. Увидишь, что они вызываются на каждое изменение стора.
так блет, значит я написал, так и есть? на пук, тригернет не только изменившееся, но и остальное же?
Frontend Priest
Окей, задушили. Но из вредности скажу, что для реакт-компонента ререндера не будет, а это вродь как цель маппинга и суть оптимизации
Андрей
так блет, значит я написал, так и есть? на пук, тригернет не только изменившееся, но и остальное же?
В биндингах к реакту есть механизмы, которые позволяют не ререндерить компонент, если ветка стора не была обновлена. Но селектор будет перевызван.
Sergey Makarov
Подскажите пожалуйста, как правильно менять состяоние в таком state, чтоб сохранить предыдущие
this.setState(prevState => ({ radioButton: { ...prevState.radioButton, [e.target.value]: !prevState[e.target.value] } })); как-то так наверное
Dmitry
Окей, задушили. Но из вредности скажу, что для реакт-компонента ререндера не будет, а это вродь как цель маппинга и суть оптимизации
хзхз и вот по поводу контекст вс стор все же тоже самое выходит каждый конект подписывается на стор в ридаксе все размо тригерятся и смотрят что поменялось но такое же поведение провайдер консюмер (если я допишу обертку типа коннекта)
Bogdan
Первое.
ага, понял, но если не будет селектора, будет перерендер тогда точно?
Frontend Priest
Блапгодарю
Это плохой код, не делай так, не рендери так, не обрабатывай ошибки так
Frontend Priest
А как
Твой компонент проще написать с jsx и на хуках
Michail
Второго не заню
Frontend Priest
Второго не заню
Посмотри в доке элементарный пример useState, повтори с одним инпутом, сделай аналогично с тремя. Там ничего ужасного не происходит.
Bogdan
Второго не заню
только useReducer для нескольких инпутов проще
Frontend Priest
Ну для того чтоб изменить состояние учить что-то новое это немного странно
Дело в том, что у тебя в компоненте буквально слишком много букв ради элементарного поведения. Я понимаю, что концептуально классовые компоненты довольно простые, но это обходится ценой спагетти кода, медленной разработки и кучи букв
Michail
ПонялЭ, спс
Dmitry
Да, хуки проще чем кажутся)
El
Почему у меня тут err не ловится? console.log('api err:', err) нету в консоли. export const getDailyToUsd = async (fsym = 'BTC', limit = 10) => { try { const res = await fetch( `https://min-api.cryptocompare.com/data/v2/histoday?fsym=${fsym}&tsym=USD&limit=${limit}`, { headers: authHeader } ); return (await res.json()).Data.Data; } catch(err) { console.log('api err:', err); return { message: err.Message }; } };
El
Как это завернуть в try...catch ?
Cenator 🐈
Перед ретурном