无需使用链接即可反应路由器更改状态

时间:2016-12-30 05:05:37

标签: react-router

所以我显然知道如何做到这一点:

<Link to="/picture/123" state={{ fromDashboard: true }} />

并且您可以通过传入状态来更改状态。

我知道如果你不想使用链接,即你想以编程方式导航,那么你必须使用它:

browserHistory.push('/url');

但更改路由器状态的替代方法是什么?

所以这就是我现在所知道的:

  • 使用“链接”转到新路线(已知)
  • 使用“链接”传递状态(已知)
  • 转到新路线的替代功能(已知)
  • 传递路由器状态的替代功能(???)

1 个答案:

答案 0 :(得分:2)

您上面使用的<Link>道具实际上已过时了。当不仅仅是pathname要用于导航时,to道具应该是一个对象,称为“位置描述符”。

<Link to={{ pathname: '/picture/123', state: { fromDashboard: true } }} />

同样,您可以将位置描述符推送到历史记录。

browserHistory.push({
  pathname: '/picture/123',
  state: { fromDashboard: true }
});