Looch
коллеги а может кто-то знает бабел плагин что б давать всем реакт компонентам displayName НО с учетом иерархии в рект дереве дипа app -> table -> cell
Looch
год назад точно такого небыло. пытался свой написать
там вроде ничего сложного,но проблема в том что дерево будет статическое и не учтет циклов/массивов
GG
почему в сср может быть утечка памяти? в какую сторону копать?
GG
и как дебажить?
Андрей
почему в сср может быть утечка памяти? в какую сторону копать?
Делай снепшот памяти и смотри что за объекты там.
🦜
и как дебажить?
https://blog.jetbrains.com/webstorm/2015/07/node-js-profiling-in-webstorm-part-2-memory-profiling/
🦜
https://blog.jetbrains.com/webstorm/2015/07/node-js-profiling-in-webstorm-part-2-memory-profiling/
https://www.jetbrains.com/help/webstorm/v8-cpu-and-memory-profiling.html
GoDenis
делаю в mapDispatchToProps axios запрос. как мне обработать результаты запроса и по результатам полученных данных нагенерить экшоны?
Artur
делаю в mapDispatchToProps axios запрос. как мне обработать результаты запроса и по результатам полученных данных нагенерить экшоны?
Странно как-то. Асинхронные запросу либо Thunk либо Saga делаются. А в mapDispatchToProps передаются Actions Creators.
GoDenis
не могу въехать как она работает
GoDenis
function mapDispatchToProps(dispatch) { return { lAgents: () => { // dispatch(loadHost()) returns a promise let r = dispatch(loadAgents()); let data = []; r.then((...args) => { args[0].payload.data.forEach((el)=>{ dispatch(addAgent(el)); }); }).catch((...args) => { }); } }; }
GoDenis
вот такой код уходит в постоянный цикл
Vladimir
function mapDispatchToProps(dispatch) { return { lAgents: () => { // dispatch(loadHost()) returns a promise let r = dispatch(loadAgents()); let data = []; r.then((...args) => { args[0].payload.data.forEach((el)=>{ dispatch(addAgent(el)); }); }).catch((...args) => { }); } }; }
mapDispatchToProps должен выглядет так const mapDispatchToProps = { loadAgents }; иначе ты запутаешься и охренеешь это поддерживать. Всю логику пихай в экшен
Andrey
Привет, я хочу по клику запустить сагу, которая фетчит дату, а потом зафорсить ререндер комопннента. Естественно фетчинг заканчивается после того как forceUpdate сработает. Как можно дождаться конца загрузки, перед форсом?
Andrey
потомучто в localStorage уходят данные, которые проверяются перед рендером
wolfe
потомучто в localStorage уходят данные, которые проверяются перед рендером
запишите в стейт редакса, если эти данные вам нужны в компоненте
Andrey
в стейт я записать не могу, потомучто функция проверки и обновления данных в storage запускается по сценарию при каждом маунте компонента... Если записывать в редакс-стор. componentdidmount будет безконца обновлать стейт и ререндерить компонент.
Ivan
в стейт я записать не могу, потомучто функция проверки и обновления данных в storage запускается по сценарию при каждом маунте компонента... Если записывать в редакс-стор. componentdidmount будет безконца обновлать стейт и ререндерить компонент.
что-то не так вы делаете с сагами когда у вас есть редакс-саги, компоненты только диспатчат actions и делают select из store все сайд-эффекты (фетч данных, работа с localstorage, что угодно ещё) происходит в сагах. саги в свою очередь на определённых этапах выполнения диспатчат экшены вроде «я пошла работать, рендерь крутилку», «я закончила работать, вот данные»
Andrey
попробуйте в componentdidmount вызвать action, сага которого обновлайет стейт редакса. Получите петлю которая обновляет стейт, что вызывает ререндер компонента, в котором срабатывает componentdidmount
Andrey
и так по кругу
Unknown
Привет друзя вопрос
wolfe
попробуйте в componentdidmount вызвать action, сага которого обновлайет стейт редакса. Получите петлю которая обновляет стейт, что вызывает ререндер компонента, в котором срабатывает componentdidmount
componentDidMount срабатывает единожды, он не может зациклить обновление. возможно, вы имеете в виду didUpdate? компоненты должны быть чистыми: пишите компонент, который только принимает данные и диспатчит экшены
Anonymous
ребят кто нибудь работал с react-dnd. Там можно сохронять в статическую разметку html результат работы?
Unknown
если я шочу поменять елемент в масиве котоый в стейте родителя, меняю и все потопмки рендерятся заново, хотя в масиве поменялся лишь один елемент
Andrey
componentDidMount срабатывает единожды, он не может зациклить обновление. возможно, вы имеете в виду didUpdate? компоненты должны быть чистыми: пишите компонент, который только принимает данные и диспатчит экшены
вы можете запустить сагу по евенту которая единожды вызовет обновления стейта редакс и единожды отправит компонент на ремаунт(само обновление стейта инициирует ремаунт компонента), используя эту сагу в componentdidmount вы получаете петлю ремаунта компонента, и обновления стейта сагой которую вы туда поместили. Я об этом... мне нужно проверять стейт и обновлять его при кадлом маунте. поэтому я переехал в localstorage
T.A
стоит ли разделять логику апдэйта и создания модели на разные компоненты? просто сейчас немного усложняется универсальный компонент. не пойму как заменить пустой стэйт после фэтча
Andrey
не надо "отправлять компонент на ремаунт". стор и компонент — вещи обособленные друг от друга
Так или иначе стор подключен к компоненту через пропсы, и ремаунта не избежать если обновлять стор.
Daniil
подход, а не инструмент
Andrey
не понял с каких пор подключать компонент к стору стало дурным тоном?
Andrey
connect мне на что
Vladimir
не понял с каких пор подключать компонент к стору стало дурным тоном?
с каких пор изменения в сторе вызывают реМАУНТ?
Vladimir
ты значит на неправильном уровне вложенности делаешь cdm
Andrey
с тех пор пока стор обновляет пропсы компонента через connect
Ivan
не понял с каких пор подключать компонент к стору стало дурным тоном?
собери пример на codesandbox.io, там увидим, что не так иначе тред перерастёт в горы говна
Vladimir
ререндер != ремаунт
Andrey
собери пример на codesandbox.io, там увидим, что не так иначе тред перерастёт в горы говна
спасибо, сейчас попробую вернуть на стейты все, и выложить
wolfe
не понял с каких пор подключать компонент к стору стало дурным тоном?
Компонент подключается к стору, все верно, но он только ОТОБРАЖАЕТ текущие значения стэйта и вызывает экшены для его обновления. Вычислите все необходимые данные в сторе в одной саге и просто отображайте их
Andrey
спасибо за помощь
Andrey
один момент я подплавлю данные для логина
Andrey
Да, я сейчас дольше буду переделывать фетчи под болванки под какиенибудь, данные учетки естественно светить не хочу, предлагаю закрыть вопрос, буду искать решение сам, спасибо за помощь =)
Anonymous
Как русифицировать React Table? Например, она пишет Page 1 if 10, нужно "стр. 1 из 10".
Anonymous
Там есть пропсы необходимые. Читай доку
Читаю. Кинете ссылку на конкретные пропсы?
Anonymous
getPaginationProps={fn}, возможно.
Bogdan
является ли ошибкой спользование хука в рендер пропе?
Ihor
Всем привет, такой вопрос по material ui как TextField с атрибутом select назначить выборку для выподающего меню, если я использую синтаксис из ES6 и описываю компонент классом ? Как в таком случае должен выглядить handleChange ?
Dmitriy
является ли ошибкой спользование хука в рендер пропе?
Кто будет гарантировать порядок хуков?
Dmitriy
никто
Отож. Иногда это будет работать, но это потенциальное место багов. Зачем тебе именно такой подход?
Bogdan
Отож. Иногда это будет работать, но это потенциальное место багов. Зачем тебе именно такой подход?
у меня фильтр, который вернет данные именно рендер пропу, в рендер пропе запрос, хук аполо
Ivan
у меня фильтр, который вернет данные именно рендер пропу, в рендер пропе запрос, хук аполо
Вынеси логику фильтра в хук и вызывай его перед вызовом аполо
Dmitriy
у меня фильтр, который вернет данные именно рендер пропу, в рендер пропе запрос, хук аполо
Все решается как в доке только будет ровно в два раза больше реренлеров, но если это не тонкое место , то норм будет
Dmitriy
у меня фильтр, который вернет данные именно рендер пропу, в рендер пропе запрос, хук аполо
И не всегда от аполо нужно юзать хуки. Возьми инстанс клиента и императивно вызови его метод
Bogdan
Вынеси логику фильтра в хук и вызывай его перед вызовом аполо
да, только фильтр долго переделывать, пока времени не дадут
A
Привет, как в реакте добавить или удалять className при нажатии на ссылку или NavLink?
Bogdan
Просто client.query
а чего порядок не гарантирован? вызовится рендер проп сам и вызовит хук, равзе нет?
Юрий
почему стили подтягиваются с других файлов которые даже не импортированы в файл с версткой? как убрать это?
Владислав
почему стили подтягиваются с других файлов которые даже не импортированы в файл с версткой? как убрать это?
Наверное, нужные элементы описаны уже где-то, либо стили наследуются. На выходе ты же получаешь тег style со всеми стилями
Dmitriy
а чего порядок не гарантирован? вызовится рендер проп сам и вызовит хук, равзе нет?
Я ловил баги. Сильно не разобрался, но 99% кейсов решается по доке
Владислав
Обернув withRouter'ом
A
Можно проверять значение history.location.pathname
Я пробовал так, но в таком случае анимация не работает