Ошибка рефлюкса при запуске действия
Это либо большая ошибка, либо у меня возникают проблемы с пониманием полезности использования разных обработчиков представлений (React) для разных действий, запускаемых хранилищем, если все обработчики вызываются для каждого из этих действий.
Вот что я имею в виду: https://jsfiddle.net/69z2wepo/10946/
Ожидаемый результат:
action 1 handler triggered from action 1
-----------------
action 2 handler triggered from action 2
Что я на самом деле получаю:
action 1 handler triggered from action 1
action 2 handler triggered from action 1
-----------------
action 1 handler triggered from action 2
action 2 handler triggered from action 2
Просто глядя на этот вывод, я могу сказать, что это неправильно. Но чтобы уточнить: действие 1 должно только запускать обработчик для действия 1, а действие 2 должно только запускать обработчик для действия 2.
Я делаю что-то неправильно?
Пожалуйста помоги!
PS: я также пытался вручную использовать ComponentDidMount с this.listenTo; такое же поведение
1 ответ
Концептуально, я думаю, вы немного неправильно поняли Flux. Компонент не прослушивает действия / события, он прослушивает изменения данных в вашем магазине. Поэтому то, что вы видите, правильно, так как в обоих случаях вы используете trigger
чтобы указать, что магазин изменился.
Компонент заботится только об огневых действиях, а не потребляет их. Поэтому маркировка onAction1
а также onAction2
в компоненте как "обработчики" не совсем правильно.