Size: a a a

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

2021 March 05

AG

Adel Gilyazeev in React — русскоговорящее сообщество
Ререндер разве не откладываться на потом, до окончания обработки всех хуков?
источник

JT

John Travolta in React — русскоговорящее сообщество
так это неважно, если я правильно понял то, что ты описал, то у тебя они циклические, следовательно, они один за одним становятся в стек вызова и когда дол них доходит очередь, они вызывают еще и еще
Сделай так, чтобы не было этой циклической заыисимости когда первый дергает второй, а второй первый и так по кругу
источник

AG

Adel Gilyazeev in React — русскоговорящее сообщество
John Travolta
нет, не прям мгновенное
в доке даже написано, что если после setState() сделать еще что-то, то реакт не гарантирует, что оно выполнится после или до изменения стейта, т.к. функция setState подготавливает данные перед их изменением и там есть задержка в миллисекундах
Какая задержка? Код выполняется последовательно же (внутри функции)
источник

JT

John Travolta in React — русскоговорящее сообщество
внутри самой функции setState под капотом
источник

AG

Adel Gilyazeev in React — русскоговорящее сообщество
У меня нет там циклической зависимости (её не должно быть) я просто предположил
источник

JT

John Travolta in React — русскоговорящее сообщество
Ну тут без кода сложно понять)
Выложи куда-то кусок, сбрось сюда, завтра утром народ глянет
источник

AG

Adel Gilyazeev in React — русскоговорящее сообщество
У меня там слишком много грязи, ибо я уже начал использовать useRef вместо стейта, чтобы функция обертка отображения данных не изменялась
источник

AG

Adel Gilyazeev in React — русскоговорящее сообщество
И вообще у меня там были анонимные компоненты
источник

AG

Adel Gilyazeev in React — русскоговорящее сообщество
Хотя я от них впоследствии избавился и вынес в отдельные компоненты
источник

JT

John Travolta in React — русскоговорящее сообщество
я бы все равно посоветовал как-то почистить код и выложить куда-то и закинуть сюда утром когда народу будет больше
читая текст, сложно понять причину ошибки
источник

AG

Adel Gilyazeev in React — русскоговорящее сообщество
Всё началось когда я добавил

Re = useState(new RegExp(...));
useEffect(()=>{setData(kData.filter((v)=>Re.test(v))), [Re])

Надеюсь суть можно уловить
источник

JT

John Travolta in React — русскоговорящее сообщество
мне непонятна запись
Re = useState(new RegExp(...));

должно быть
const [Re, setRe] = useState(new RegExp(...));
источник

AG

Adel Gilyazeev in React — русскоговорящее сообщество
John Travolta
я бы все равно посоветовал как-то почистить код и выложить куда-то и закинуть сюда утром когда народу будет больше
читая текст, сложно понять причину ошибки
Хорошо) я ещё потом грешить стал на то что контекст мб меняется, ибо в контексте компонент который меняет регулярку как раз... Но контекст я менял только один раз при монтировании и туда вот пробрасывал сеттер регулярки...
Но без отображения данных всё работает...
источник

AG

Adel Gilyazeev in React — русскоговорящее сообщество
John Travolta
мне непонятна запись
Re = useState(new RegExp(...));

должно быть
const [Re, setRe] = useState(new RegExp(...));
Я это и имел ввиду, с телефона писать не удобно...
источник

JT

John Travolta in React — русскоговорящее сообщество
ну если useEffect не меняет Re, то не должно быть циклической зависимости
источник

AG

Adel Gilyazeev in React — русскоговорящее сообщество
Да у меня вообще нигде не должно быть циклической зависимости, я не глупый, просто видимо где-то перемудрил.... Повторяю который раз, если перестать отображать данные, закоментить <DataViewer data={Data}/>
Который только отображает данные, то всё работает... Регулярки меняются при редактировании, Data обновляется (использовал console.log и dir)
источник

JT

John Travolta in React — русскоговорящее сообщество
и ошибок никаких нигде не пишет?
источник

AG

Adel Gilyazeev in React — русскоговорящее сообщество
John Travolta
и ошибок никаких нигде не пишет?
Никаких
источник

JT

John Travolta in React — русскоговорящее сообщество
а в методе рендер один этот компонент или есть еще какой-то рядом?
источник

AG

Adel Gilyazeev in React — русскоговорящее сообщество
John Travolta
а в методе рендер один этот компонент или есть еще какой-то рядом?
Там куча компонентов,
источник