не срабатывают case, всегда default
Всё-таки срабатывают.
Почему default случается когда вроде бы не должен - потому что у двух последних case'ов отсутствует break, соответственно, при их выполнении выполняется и default, идущий в самом конце.
Почему вы не видите эффекта от выполнения кода внутри case'ов - да потому что нечего видеть. Вы скопировали значение свойства display в переменную, и эта копия уже никакого отношения к оригиналу не имеет, что бы вы с ней не делали, это никак не отразится на элементе. Чтобы элемент изменился, надо новые значения назначать его свойствам. Но, конечно, не напрямую, а так, как это принято в react'е - заводите в компоненте стейт, на основе значений из стейта в методе render устанавливаете свойства элементам, когда хотите их изменить, обновляете стетйт.
Ещё пара моментов, которые стоит упомянуть:
Почему у вас li вложен в div? Разберитесь, какие элементы куда можно вкладывать, а куда нельзя.
Зачем два одинаковых обработчика клика? Второй, который у li, он не нужен - делает ровно то же, что и первый. Потому что... Почитайте, что такое всплытие событий.