我刚遇到路由器v4的问题,也许这不是什么大问题,但我不知道如何以正确的方式处理这个问题。 看起来应该是这样的:
<Route path="/" component={List}>
<Route path="/listitem/:id" component={ListItem} />
</Route>
如果我现在在(“/” - List)页面上,我想从不同的(“/ listitem /:id” - ListItem)页面看到所有 ListItems。 (信息较少,但这应该是一个简单的CSS问题)
一旦我点击一个,我想把它全屏(动画和东西......但这不是问题)并且路线应该改变,不出所料:-)。
如果我现在在一个特定的ListItem上并触发history.goBack(),我想将该Item动画回List,并且路径应该变回“/”。
其他(可能是可选的)想法:如果我最初在“/ listitem /:id”页面访问该网站并点击“(/” - 列表)页面的链接,那就不应该是ListItem的任何动画。
我想这是反应路由器的一个基本问题,但我实际上现在还不知道如何正确实现这一点。
我不知道它是否有任何区别,但我也在使用Redux。
我希望,有人可以帮助我。
提前谢谢。
答案 0 :(得分:0)
我认为最好使用Parent组件中的state来处理。例如:
this.state = {
fullscreen: false,
idOpened: null
}
单击子组件(列表项)后,设置一个回调,将ID发送给父组件,然后触发全屏模式。这样您就不需要使用历史记录API,并且访问者不必等待页面加载(初始加载除外)。
点击其他列表项时,也可以轻松触发任何动画。