grigory_shein
@grigory_shein
Фриланс-разработчик

Как передавать события между компонентами react.js?

У меня задача, чтобы при нажатии на кнопку в одном компоненте, срабатывало событие в другом.

Я знаю, что можно делать это через props и refs но функции передавать из компонента в компонент мне кажется странно (может не привык).
Ещё наверное можно на window повесить listener, но это как-то тоже некрасиво.
Можно ли как-то отслеживать state если я использую redux?

На vue я бы сделал так:
https://www.digitalocean.com/community/tutorials/v...

Просто странно, что в таком популярном фреймворке столько танцев нужно для самой простой функции
  • Вопрос задан
  • 654 просмотра
Пригласить эксперта
Ответы на вопрос 2
@djokerik
Front-end
Ты используешь функцию вызывая из редюсера, импортируй вызываемую функцию в редюсер нужного компонента, оберни ее санкой и вызови как свою функцию в нужном компоненте
Ответ написан
GreyCrew
@GreyCrew
Full-stack developer
На самом деле это не танцы, а устойчивая архитектура, которая позволяет масштабировать приложение до огромных размеров, без отстрела ног)

1) На каждое событие у вас должен быть экшн.
2) Экшны вы должны добавить в редюссер, для отслеживания вызова (паттерн наблюдатель)
3) Диспатчите вызовы во все компоненты, какие вам нужны.

статья по ним
офф дока

ПС. Если нужно сделать срочно и у вас небольшое приложение, то можете вместо redux заюзать что то другое, к примеру mobx, или нативный Context
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы