1

我正在为 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

浏览器中发生了什么? 当我在浏览器中运行应用程序时,我可以看到 show/1,如果我单击第二个选项卡,我可以看到 url 正在更改为shows/2. 在这里,当我单击浏览器后退按钮时,它会导航到 show/1。当我从设置页面转到设置页面shows/2并在设置页面中单击浏览器后退按钮时,我可以看到该shows/2页面,这完全没问题。

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

有什么问题? 我觉得,如果我从一个选项卡移动到另一个基本上是一个单一组件的选项卡,则设备导航不会保存。

我试过什么? 我试图Link从选项卡中删除并添加一个点击事件,在点击处理程序中我使用下面的代码,但没有用。

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

应该是什么行为? 在设备中,如果我从 导航shows/1shows/2,并且如果我从那里单击设备后退按钮,shows/2那么我应该能够转到shows/1而不是退出应用程序。

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

4

0 回答 0