2015-11-17 3 views
0

Инструментов: Реагировать 0.14.0, React-маршрутизатор 1.0.0, Vanilla FluxReact/Flux: Хранение Важной Params Во время маршрута Изменение

Из-за обработки событий "обратно-кнопки" - Я пытаюсь использовать маршрутизация, чтобы сохранить важные идентификаторы для рендеринга (например, 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-маршрутизатор

Вопрос (все остальные мои депеши были уже закончены.): я пытаюсь правильно распределять состояние «currentThreadID»? Если да, то где я могу вызвать действие для сохранения параметра в моих магазинах?

ответ

0

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

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

+0

Это было началом ... но я не смог найти хороший пример (и многое изменилось за последний год, что еще труднее сказать) –

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