javascript - 使用反应路由器从主页重定向到特定页面后访问从 NavLink 传递的数据
问题描述
我正在开发一个反应网络应用程序,我正在使用反应路由器。我想将数据从 传递NavLink
到我的Movies
组件。如下图NavLink
所示。
<ul>
<li id="movies">
<NavLink exact to = {{pathname: "/", state:{page: 1}}} > Movies </NavLink>
</li>
</ul>
在我的路由器中,我想movies/all/1
从登录页面重定向到。我的路线是:
<Route exact path="/" render={() => <Redirect to="/movies/all/1" />} />
<Route exact path = "/movies/:genre/:genrePage" component = {Movies} />
在Movies
组件中,我可以访问路由参数,但我无法访问通过道具{page: 1}
传递的数据。我不断得到的价值。我该怎么做?我不希望我传递的数据在.NavLink
location
undefined
props.location.state
url
编辑
也许要澄清。下面的问题部分回答了我的问题。
但是,我仍然无法访问Link
第一次加载页面时传递的数据,然后从根路径重定向/
到/movies/all/1
. 只有Link
点击后才能访问。
解决方案
Redirect
组件不会传递location.state
到下一条路线(即/movies/all/1
)。
如果你想这样做,你需要location.state
从你的 Route中获取/
并将其传递给Redirect
.
它看起来像这样:
<Route exact path="/" render={({ location }) => <Redirect to={{ pathname: "/movies/all/1", state: location.state }} />} />