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

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


person Mauro Gava    schedule 25.06.2015    source источник


Ответы (1)


Концептуально, я думаю, вы немного неправильно поняли Flux. Компонент не прослушивает действия/события, он прослушивает изменения данных в вашем магазине. Следовательно, то, что вы видите, верно, поскольку в обоих случаях вы используете trigger, чтобы указать, что хранилище изменилось.

Компонент заботится только об запуске действий, а не об их использовании. Поэтому маркировка onAction1 и onAction2 в компоненте как "обработчики" не совсем корректна.

person Colin Ramsay    schedule 25.06.2015