Size: a a a

React — русскоговорящее сообщество

2020 December 17

YS

Yevhen Soldatov in React — русскоговорящее сообщество
Ребят, как заставить срабатывать useEffect как альтернатива componentWillUnmount ?
Когда я нажимаю на Link с другим роутом, то все ok  выполняется удаление с локалстора, но когда замостоятельно изменяю url в браузере и нажимаю Enter или нажимаю назад в браузере, он не отрабатывает
источник

MG

Max Gudkov in React — русскоговорящее сообщество
Влад
onBlur?
нет, не уход курсором, а именно переход на другой компонент
источник

Т

Тимофей 🛴 in React — русскоговорящее сообщество
Я знаю что такое хуки) но не могу понять как это проект на них
источник

И

Иван in React — русскоговорящее сообщество
Dmytro Svyrydenko
Привет всем!
Ребят, есть вот такая структура данных. Переменная, которая лежит внутри filter, это объект. Суть в том, что когда данные в объекте меняются, я хочу ререндерить компонент. Но реакт так глубоко изменений не видит. Я думал добавить проверку на deepEqual, но не знаю куда мне ее засунуть чтоб заставить компонент перерисоваться
Подскажите пжлст
Попробуй менять его иммутабельно, тогда реакт увидит
источник

Т

Тимофей 🛴 in React — русскоговорящее сообщество
Yevhen Soldatov
Ребят, как заставить срабатывать useEffect как альтернатива componentWillUnmount ?
Когда я нажимаю на Link с другим роутом, то все ok  выполняется удаление с локалстора, но когда замостоятельно изменяю url в браузере и нажимаю Enter или нажимаю назад в браузере, он не отрабатывает
Переход в браузере заново грузит приложение целиком
источник

DS

Dmytro Svyrydenko in React — русскоговорящее сообщество
Тимофей 🛴
Не реагирует на изменение? Ты мутируешь стейт?
У меня MobX. Так что да
У меня переменная для filter приходит из systemDynamicFields, а та в свою очередь приходит из сторы. Когда изменяется она, то ререндер есть. Но когда меняется структура внутри компонента, то увы ререндера нету
источник

Т

Тимофей 🛴 in React — русскоговорящее сообщество
Dmytro Svyrydenko
У меня MobX. Так что да
У меня переменная для filter приходит из systemDynamicFields, а та в свою очередь приходит из сторы. Когда изменяется она, то ререндер есть. Но когда меняется структура внутри компонента, то увы ререндера нету
Используй computed для таких вычисляемых свойств
источник

DS

Dmytro Svyrydenko in React — русскоговорящее сообщество
Тимофей 🛴
Используй computed для таких вычисляемых свойств
Пробовал, но не сработало
Я по сути дефинишн investorsFilters переносил в @computed get investorsFilters и return той структуры что на скрине
Но увы
источник

DS

Dmytro Svyrydenko in React — русскоговорящее сообщество
Я не уверен что computed понимает, что данные изменились в investorFilters[0].filter
источник

AG

Asad Ganiev in React — русскоговорящее сообщество
Добрый день,
Как делать селект в тесте.
`const wrapper = mount(...);
wrapper.find("#select-form").simulate("change", [select target option])
`
попробовал разные варианты, но работает и в интернете тоже не нашел нормального варианта
источник

Т

Тимофей 🛴 in React — русскоговорящее сообщество
Dmytro Svyrydenko
Пробовал, но не сработало
Я по сути дефинишн investorsFilters переносил в @computed get investorsFilters и return той структуры что на скрине
Но увы
Крч вариантов причин и решений мне видится дохрена, сделай пример на codesandbox

Или возможно кинь в чат по mobx и там быстрее помогут
источник

DS

Dmytro Svyrydenko in React — русскоговорящее сообщество
Тимофей 🛴
Крч вариантов причин и решений мне видится дохрена, сделай пример на codesandbox

Или возможно кинь в чат по mobx и там быстрее помогут
А можешь пжлст кинуть ссылку мобх чата? Не могу ни в шапке реакта найти, ни в поиске
источник

DS

Dmytro Svyrydenko in React — русскоговорящее сообщество
Если что, когда я делаю вот такой консоль лог, то ререндер работает
источник

MK

Maxim Koylo in React — русскоговорящее сообщество
Dmytro Svyrydenko
А можешь пжлст кинуть ссылку мобх чата? Не могу ни в шапке реакта найти, ни в поиске
их нету
источник

Т

Тимофей 🛴 in React — русскоговорящее сообщество
Dmytro Svyrydenko
Я не уверен что computed понимает, что данные изменились в investorFilters[0].filter
Вообще если у тебя observable array то нужно [].filter  = новое значение

Глубже он не детектит изменения

@mobxjs_ru
источник

DS

Dmytro Svyrydenko in React — русскоговорящее сообщество
Или даже вот такой консоль лог
Тоже делает ререндер
источник

DS

Dmytro Svyrydenko in React — русскоговорящее сообщество
Тимофей 🛴
Вообще если у тебя observable array то нужно [].filter  = новое значение

Глубже он не детектит изменения

@mobxjs_ru
У меня observable objects внутри observable map
источник

MK

Maxim Koylo in React — русскоговорящее сообщество
Тимофей 🛴
Вообще если у тебя observable array то нужно [].filter  = новое значение

Глубже он не детектит изменения

@mobxjs_ru
о это он еще развился, раньше 10 калик сидело
источник

Т

Тимофей 🛴 in React — русскоговорящее сообщество
Dmytro Svyrydenko
У меня observable objects внутри observable map
Мне кажется ты перемудрил, и вместо войны с mobx лучше порефакторить
источник

Т

Тимофей 🛴 in React — русскоговорящее сообщество
Maxim Koylo
о это он еще развился, раньше 10 калик сидело
Да я его сча скидываю регулярно) мне кажется даже онлайн поднял)
источник