2015-06-25 8 views
0

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

Я делаю что-то неправильно?

Пожалуйста, помогите!

P.S: Я также пытался вручную использовать ComponentDidMount с этим.listenTo; такое же поведение.

ответ

2

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

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

 Смежные вопросы

  • Нет связанных вопросов^_^