首页 > 解决方案 > 使用反应路由器从主页重定向到特定页面后访问从 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}传递的数据。我不断得到的价值。我该怎么做?我不希望我传递的数据在.NavLinklocationundefinedprops.location.stateurl

编辑

也许要澄清。下面的问题部分回答了我的问题。

但是,我仍然无法访问Link第一次加载页面时传递的数据,然后从根路径重定向//movies/all/1. 只有Link点击后才能访问。

标签: javascriptreactjsreact-routerreact-router-dom

解决方案


Redirect组件不会传递location.state到下一条路线(即/movies/all/1)。

如果你想这样做,你需要location.state从你的 Route中获取/并将其传递给Redirect.

它看起来像这样:

<Route exact path="/" render={({ location }) => <Redirect to={{ pathname: "/movies/all/1", state: location.state }} />} />

推荐阅读