Реакция / поток: хранение важных параметров во время изменений маршрута

Инструменты: React 0.14.0, React-Router 1.0.0, Vanilla Flux

Из-за обработки события "кнопка назад" - я пытаюсь использовать маршрутизацию, чтобы сохранить важные идентификаторы для рендеринга (например, currentThreadID ).

например - /threads/:currentThreadID

Проблема: поскольку несколько компонентов зависят от currentThreadID, я пытаюсь получить параметры и добавить их в хранилище при открытии маршрута. Проблема в том, что я не могу найти, где в моей программе мне нужно брать текущее местоположение.

Например у меня есть этот маршрут

<Route path='/' component={Main}>
  <Route path='home' component={Home} >
    <Route path='threads' component={Thread} >
      <Route path=':currentThreadID' component={ThreadList} />  
    </Route>
  </Route>
  <Route path='login' component={Login} />
</Route>

Когда я вхожу ThreadList Я пытаюсь получить параметр и добавить его в магазин, чтобы другие компоненты имели к нему доступ.

ThreadList.js

componentWillMount: function(){
    var { threadID } = this.props.params
    ThreadActionCreators.setCurrentThread(threadID);
},

Попытка установить, что текущий идентификатор вызывает конфликт с диспетчером "Ошибка: нарушение инварианта: Dispatch.dispatch(...): невозможно отправить в середине отправки".

Я полагаю, что это из-за конфликта с React-Router(все остальные мои рассылки уже были закончены).

Вопрос: правильно ли я пытаюсь оплатить состояние currentThreadID? Если да, то как мне вызвать действие для сохранения параметра в моих магазинах?

1 ответ

Некоторое время я не использовал реагирующий маршрутизатор, но я думаю, что вы можете настроить отправку действия в обратном вызове, предоставленном Router.run, для отправки действия изменения маршрута. Затем вы можете настроить свой магазин на получение идентификатора из параметра маршрута при соответствующем изменении маршрута.

Я бы порекомендовал взглянуть на Redux, хотя это усовершенствование архитектуры Flux, а в redux-router встроены действия для такого рода вещей.

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