componentDidUpdate отрабатывает при каждом скроллеа это значит, что у вас не аналогично и состояние изменяется каждое событие. По-хорошему, так быть не должно.
Реализацию того, как мне нужно сделать можно посмотреть тут https://skybuy.ru/catalog/smesiteli/ если зайти в категорию, где сайдбар меньше в высоту, чем товары, то там поведение сайдбара меняется
подскажи, как сделать так, чтобы он не вызывался?
И Реакт же должен смотреть DOM дерево по ключам, если произошли изменения, то перерисовывать, но у меня данные не поменялись, поменялись только координаты блока обертки, почему он тогда перерисовывает вообще все?
setActive((active + 1 + length) % length)
Состояния сбрасываются потому что ADD_MOSQUITO приходит во все reducers , a так как в каждом есть default return state то и на выходе остается только то что попало под case ADD_MOSQUITO , остальные переписываются в дефолтные