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