在React JS

时间:2016-06-28 10:13:16

标签: javascript reactjs react-router react-router-redux react-routing

我正在为windows mobile做一个react js应用程序。我的路线配置如下

<Route path='/' component={App} >
  <IndexRedirect to='/shows/1' />
  <Route path='shows/:id' onEnter={bootStrap} component={ShowsPage} />
  <Route path='settings' component={Settings} />
  <Route path='devices' component={Devices} />
</Route>

我在第一条路线中有3个标签,其网址类似于

shows/1
shows/2
shows/3

我正在使用react-router,而标签是

之类的标签
<li key={tab}>
   <Link to={`/shows/${tab}`} className={classes.tabs} activeClassName={classes.active}>{tab}</Link>
</li>

我如何导航? 当我运行应用程序时,第一页将是shows/1,如果我点击第二个标签,则路线将为shows/2

浏览器中发生了什么? 当我在浏览器中运行应用程序时,我可以看到显示/ 1,如果我点击第二个选项卡,我可以看到网址正在变为shows/2。在这里,当我点击浏览器后退按钮时,它导航到显示/ 1。当我从shows/2转到设置页面并在我处于设置页面时单击浏览器后退按钮时,我可以看到shows/2页面,这是完全正常的。

设备中发生了什么? 当我在设备中运行应用程序时,我可以看到显示/ 1,如果我点击第二个选项卡,我可以看到第二个选项卡(显示/ 2)内容。在这里,当我点击设备后退按钮时,应用程序正在退出。当我从shows/2转到设置页面并在设置页面中点击设备后退按钮时,我可以看到shows/2页面,这完全没问题。

问题是什么? 我觉得,如果我从一个标签移动到另一个标签,基本上只有一个组件,设备导航就不会保存。

我尝试了什么? 我尝试从标签中删除Link并添加了一个点击事件,在点击处理程序中我使用了以下代码,但没有用。

this.props.router.push('/shows/' + showId)

应该是什么行为? 在设备中,如果我从shows/1导航到shows/2,如果我点击shows/2中的设备后退按钮,那么我应该可以转到shows/1而不是退出应用程序。

任何形式的帮助都会非常感激。

0 个答案:

没有答案