Почему эта странная вещь происходит с моим элементом DOM?

Итак, я в основном начал изучать react-redux, и сейчас я создаю какое-то простое приложение для магазина. Я бы представил свою проблему в нескольких пунктах.

У меня есть базовый магазин с некоторыми состояниями и панелью навигации, где у меня есть кнопка «Корзина». После нажатия кнопки корзины я хочу открыть список корзин и повернуть значок корзины на 90 градусов. Я хочу поместить все в одну функцию и прикрепить ее к onClick() мой код выглядит так: https://codepen.io/szygendaborys/pen/wZYZor?editors=0010

Основная проблема в том, что все работает, если я отменяю оператор после else. Вон тот:

else {
style = 'none';
cartArrow.style.transform = 'rotate(0deg)'
}

Если я верну это утверждение, я получу сообщение об ошибке: TypeError: Cannot read property 'style' of null, связанный с

cartArrow.style.transform = 'rotate(0deg)'

Может ли кто-нибудь помочь мне и объяснить, почему оператор if работает, а другой нет?

Пожалуйста, включите соответствующий код здесь, в Stack Overflow, а не только на внешнем сайте. В коде, который я вижу здесь, нет оператора if.

Heretic Monkey 24.04.2019 18:31
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
0
1
30
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Ваш элемент cartArrow, скорее всего, не отобразился в момент вашего запроса DOM (getElementById), что с самого начала является антишаблоном в React. Вместо этого используйте refs.

<i
  ref = {(ref) => this.cartArrow = ref}
  id='cartArrow'
  className = "fas fa-angle-right"
></i>

this.cartArrow.style.transform = 'rotate(0deg)'

Другие вопросы по теме