Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs React路由器v4(列表/列表项、路由、动画)_Reactjs_Animation_Shared Element Transition_React Router V4 - Fatal编程技术网

Reactjs React路由器v4(列表/列表项、路由、动画)

Reactjs React路由器v4(列表/列表项、路由、动画),reactjs,animation,shared-element-transition,react-router-v4,Reactjs,Animation,Shared Element Transition,React Router V4,我只是在react router v4上遇到了一个问题,也许这不是什么大问题,但我不知道如何正确处理这个问题。 它应该是这样的: <Route path="/" component={List}> <Route path="/listitem/:id" component={ListItem} /> </Route> 如果我现在在(“/”-List)-页面上,我希望看到不同(“/listitem/:id”-listitem)-页面中的所有列表项

我只是在react router v4上遇到了一个问题,也许这不是什么大问题,但我不知道如何正确处理这个问题。 它应该是这样的:

<Route path="/" component={List}>
     <Route path="/listitem/:id" component={ListItem} />
</Route>

如果我现在在(“/”-List)-页面上,我希望看到不同(“/listitem/:id”-listitem)-页面中的所有列表项。(信息较少,但这应该是一个简单的css问题)
只要我点击一个按钮,我就想全屏显示(动画和其他东西……但这不是问题所在),路线应该会改变,这并不奇怪:-)。
如果我现在在一个特定的ListItem上并触发history.goBack(),我想将该项设置回列表中,并且路由应更改回“/”

其他(可能是可选的)想法:如果我最初在“/listitem/:id”-页面访问该站点,并单击“(/”-List)-页面的链接,则不应出现listitem的任何动画

我想这是react路由器的一个基本问题,但实际上我现在不知道如何正确地实现它。

我不知道这是否有什么区别,但我也在使用Redux。

我希望有人能帮助我。
提前感谢。

我认为最好使用父组件中的状态来处理此问题。例如:

this.state={
全屏:假,
idOpened:空
}

单击子组件(列表项)后,设置一个回调,将ID发送给父组件,然后触发全屏模式。这样,您就不需要使用历史API,访问者也不必等待页面加载(初始加载除外)

它还可以使您在单击其他列表项时不触发任何动画