Ошибка рефлюкса при запуске действия

Это либо большая ошибка, либо у меня возникают проблемы с пониманием полезности использования разных обработчиков представлений (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 в компоненте как "обработчики" не совсем правильно.

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