【发布时间】:2018-01-24 06:27:08
【问题描述】:
有没有办法在反应路由器中,每当某些组件呈现 url 时都会相应地更改。
我知道的一种方法是将window.history.pushState('', '', '/componentUrl'); 放在组件的render function 中
除了Route 中的path 属性之外,还有没有更好的方法在route 中完成它,因为path= 'someurl' 意味着每当访问someurl 时someComponent 应该呈现
但反过来说,每当someComponent 呈现的 url 应该更改为 someurl 时,我在 component 内的条件呈现上下文中使用这个 senerio。
【问题讨论】:
-
你是如何渲染那个组件的
-
我正在根据状态渲染组件中的不同组件,例如 if state == 'a' render Acomponent if state == 'b' render
Bcomponent通过这种方式组件正在渲染但是网址不变 -
URL 应该驱动组件的呈现。应用程序状态和组件不应驱动 URL。相反,我会考虑更改 URL 以呈现此组件。
-
我不建议在渲染组件时更改 URL 考虑在另一个组件的嵌套子组件中渲染此组件的情况,您将更改 URL,现在假设您拥有相同的组件重复使用 3 个不同的点,那么您将从 3 个不同的组件更改 URL,这是不正确的。相反,你应该让 URL 驱动你的组件渲染