问题:
有异步路由,从中获取参数电影
并返回电影容器
(组件)。问题是当我从一个电影容器
到另一个电影容器
(只是相同的路由,但不同。参数)我的路由器卸载并重新渲染电影容器
组件。但它应该只传递新的道具,不要触及我的组件生命周期。怎么解决呢?我做错了什么?
代码:
路由器
<Route path="/" component={AppLayout}>
<IndexRoute components={{ children: Home }} />
<Route path=":movie/about" getComponents={(nextState, callback) => {
window.scrollTo(0, 0);
const movie = findMovie(nextState.params.movie);
return callback(null, { children: (router) => <Movie movie={movie} router={router} /> });
}}/>
....
</Route>
组件将装入电影组件中
componentWillMount() {
console.log('MOUNT MovieContainer');
}
更新:好的,做了一些实验。
替换
返回回调(null,{子:(router)=
具有
返回回调(空,电影)
Andd
电影组件
未重新渲染。刚刚更新。太棒了!但是现在如何传递道具呢?
伟大的最后我找到了解决办法。
<Route path=":movie/about" getComponents={(nextState, callback) => {
window.scrollTo(0, 0);
callback(null, Movie);
}}
/>
在组件中,我可以通过this.props.params.movie
访问道具,而不是在构造函数中查找电影/组件WillMountconst电影=findMovie(nextState.params.movie);
我在React路由器2.2.1中使用React 15.0.1。我将应用程序用作父组件,它呈现从路由器处理程序传递的子组件。 这是我的导航栏组件。 这些是我的路线处理程序。当用户在路由上着陆时,将对其进行身份验证检查。如果身份验证失败,它们将被重定向到登录路径。 当应用程序组件第一次挂载导航栏和子组件时,它会检查身份验证并相应地添加到导航栏的链接。成功登录后,当用户从登录路由重定向到索引路由时,子组
我是一个新的反应和反应。我已经花了几个小时了,我只是走到了死胡同。 我正在使用CreateReact应用程序和用于css的bulma。我的依赖项: }, 我查看了stackoverflow的所有相关问题,创建了react应用程序文档,并在他们的回购协议中搜索了他们的开放问题部分,谷歌搜索了所有可能的关键字。我不知所措。 我的路由器只会呈现一个路由(Homeroute)。 如何让它显示/创建路线?
我使用开关标签路由不同的路由 但这只会加载路径/和/主页的第一个组件,也会加载loginpage nothing,并且主页组件不会加载到/主页路径! 我在切换前尝试过使用浏览器路由器标签,尝试过先加载主页,也是一样的只有主页组件加载 App.js 登录age.js 家age.js 预期 访问/应该加载登录页面 访问/主页应加载主页
本文向大家介绍React-Router 4怎样在路由变化时重新渲染同一个组件?相关面试题,主要包含被问及React-Router 4怎样在路由变化时重新渲染同一个组件?时的应答技巧和注意事项,需要的朋友参考一下 在生命周期里面判断路由是否发生变化 参考:React 如何监听路由变化重新渲染组件
当按下{Link}并更改路由时,即使在react router dom的交换机组件之外,报头组件NavBar也会保持重新命名。 这里是文件: Main index.js文件: Home.js Contact.js 当前的项目非常简单:index.js文件包含Home和Contact组件,NavBar组件作为交换机外部的头。
嗨,我不确定这是一个期望的行为还是一个bug。 这是一个空的create react应用程序示例,带有 版本: 反应:^16.13.1, react-dom:^16.13.1, react-router-dom:^5.2.0, 反应脚本:3.4.1 部件: /-对于主部件 /触点-用于触点组件 这里提供小提琴 多次单击“主页”链接会显示一条