我正试图找出通过我的路线传递数据的最佳方法.我知道我可以使用params但是某些类型的数据不属于params.
例如:我有一个显示应用程序列表的索引页面.每个应用程序旁边都有一个按钮,它将引导您进入该应用程序的视图.
我想将应用程序本身传递给Application处理程序.但是,通过params传递整个应用程序是没有意义的.虽然将应用程序标识符传递给params是有意义的(即:id或:name)
所以我认为我应该这样做的方法是将应用程序标识符传递给params,然后在Application组件中搜索我的ApplicationStore以获取给定标识符的相应应用程序.
但是,传递应用程序本身会不会更容易,更快?有没有办法做到这一点.有没有理由不这样做?
这是一些代码:
< Link to =“showApplication”params = {{name:application.name}}> View< / Link>
要么
< Link to =“showApplication”params = {{application:application}}> View< / Link>
提前致谢!
问题是当人刷新或以其他方式直接加载网址时,需要显示正确的视图.因为URL只是字符串,所以您需要将路由表示为字符串.你不能(轻松地)将实际应用程序推入网址.
原文链接:https://www.f2er.com/react/301056.html路由器的工作是获取该字符串(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
即将一个应用程序放入网址,这是太多的信息,通常是一个非常糟糕的主意.
但是mysite.com/showApplication/applicationName恰到好处:-)