Артур Галяев, у вас значение date не меняется, т.к. объект moment мутабельный и при манипуляциях с датой не меняет ссылку на исходный объект, date.add(1, 'month') это тот же самый объект момент. Если вам нужно в стейте хранить именно весь объект moment либо добавьте .clone() в конце, чтобы
клонировать объект момент:
date.add(1, 'month').clone()
либо вместо moment используйте иммутабельную библиотеку для работы с датами, например,
dayjs
Я, в принципе, не советую moment использовать, когда есть более легковесные аналоги (moment - 70.4
kB, dayjs - 2.8kB)