我正在为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
而不是退出应用程序。
任何形式的帮助都会非常感激。