Нужно просто изучить эту библиотеку, возможно, в ней создаваемый по moment() объект мутирует при каких-то методах в цепочке – как коллекции в jQuery – а потому приходится каждый раз пересоздавать его. Можно попробовать делать substract один раз и на следующей строке ждать тот же "прошедший" день.
Очередь обработки события видимо рушится, когда реакт "перемалывает" блоки с пунктами меню. Так объект-ссылка исчезает раньше времени, и внутренний обработчик не отрабатывает.
А вообще, handleChange логичнее в роутере вызывать.