У меня есть сценарий, в котором я чувствую, что мне нужно отправить действие в ответ на другое действие, и я не знаю, как лучше всего разобраться.
Действие отправляется в ответ на HTTP-ответ, например:
type: 'auth'
data: { username: 'tom' }
Поскольку этот ответ был успешным, я хочу отправить действие, чтобы отправить пользователя на домашнюю страницу:
type: 'navigate'
date: { where: 'home' }
Это кажется мне разумным потоком: это случилось, и теперь я хочу, чтобы это произошло. Проблема в том, что Flux Dispatcher не позволяет этого, так как мы все еще находимся в цикле отправки. Я понимаю, почему диспетчеризация во время диспетчеризации - плохая идея.
Некоторые люди решили эту проблему с помощью нескольких диспетчеров, в то время как авторы Flux уверены, что вам нужен только один и что вам нужно переосмыслить свои магазины.
Я не понимаю, как я мог бы реструктурировать свои магазины, чтобы облегчить это, не запутывая намерения. Мой UserStore
знает о auth
действиях, а мой RouteStore
знает о navigate
действиях. Любые предложения о том, как магазины могут быть изменены, чтобы облегчить это, будут оценены.
Я чувствую, что setImmediate
подойдет, но он кажется немного грязным. Я также думаю, что диспетчер, который ставит в очередь действия, мог бы помочь, но я чувствую своими костями, что это может вызвать неприятные проблемы.
Каков наилучший выход из этого?