React-router:通过路由传递数据

2024-02-08

我正在尝试找出通过路线传递数据的最佳方式。我知道我可以使用参数,但某些类型的数据不属于参数。

例如:我有一个显示应用程序列表的索引页。每个应用程序旁边都有一个按钮,可将您引导至该应用程序的视图。

我想将应用程序本身传递给应用程序处理程序。然而,通过参数传递整个应用程序是没有意义的。尽管将应用程序标识符传递给参数(即:id或:name)确实有意义

因此,我认为我应该这样做的方法是将应用程序标识符传递给参数,然后在应用程序组件中搜索我的 ApplicationStore 来查找给定标识符的适当应用程序。

不过,通过申请本身不是更容易、更快吗?有没有办法做到这一点。有理由不这样做吗?

这是一些代码:

<Link to="showApplication" params={{name: application.name}}>View</Link>

or

<Link to="showApplication" params={{application: application}}>View</Link>

提前致谢!


问题是,当用户刷新或以其他方式直接加载 url 时,它需要显示正确的视图。由于 URL 只是字符串,因此您需要将路由表示为字符串。您无法(轻松)将实际应用程序推入 URL 中。

路由器的工作是获取该字符串(URL)并将其映射到实际代码(处理程序),并提供任何额外的数据(参数、查询和/或哈希)。

作为路由器用户,您的工作是确保 URL 中有足够的信息,以便路由器选择正确的处理程序,并让处理程序有足够的信息来完成其工作(例如要显示哪个应用程序)。

如果网址类似于mysite.com/showApplication,显然没有足够的信息。

如果是这样的:

mysite.com/showApplication/React.createClass(%7Brender%3A%20function()%7Breturn%20React.createElement('div'%2C%20null%2C%20%22I'm%20an%20application!%22%7D%7D)%3B

也就是说,将应用程序放在 URL 中,这会带来太多信息,而且通常是一个非常糟糕的主意。

But mysite.com/showApplication/applicationName恰到好处:-)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

React-router:通过路由传递数据 的相关文章

随机推荐