Я пытаюсь программно перенаправить на новый маршрут/компонент после создания модели. <Link>
компоненты работают должным образом. Я использую МобХ. Это работало раньше, когда я использовал Redux. Он перестал работать, когда я перешел на MobX. Нажатие на компоненты <Link>
будет работать как положено.
Визуализированный компонент:
<Router history={locationStore.history}>
<div>
<SideBar />
<div className={mergeClass('app-content text-center', { expanded: layoutStore.sidebarOpen })}>
<NavBar />
<div className='page-wrapper'>
<Route exact path='/' component={Home} key='home' />,
<Route exact path='/stuff/:id/edit' component={StuffEdit} key='stuff.edit' />,
</div>
</div>
</div>
</Router>
Расположение магазина:
import { observable } from 'mobx'
import createBrowserHistory from 'history/createBrowserHistory'
const history = createBrowserHistory()
class LocationStore {
@observable history = history
goTo (url) {
this.history.push(url)
}
}
export default new LocationStore()
Здесь я пытаюсь изменить маршрут:
return Api.post('/stuff', formData).then((response) => {
stuffStore.addStuff(response.data)
locationStore.goTo(`/stuff/${response.data.stuff.id}/edit`)
})
URL-адрес меняется в браузере, но компонент остается на исходной странице. Щелчок по сгенерированному компоненту Link
для новой модели работает как положено (без обновления).
Версия React: 15.6.1
Версия маршрутизатора React: 4.1.2
Версия Mobx: 3.2.2
Версия Mobx-react: 4.2.2