繁体   English   中英

使用反应路由器从主页重定向到特定页面后访问从 NavLink 传递的数据

[英]Accessing data passed from NavLink after redirecting from home page to a specific page using react router

我正在开发一个反应 web 应用程序,我正在使用反应路由器。 我想将数据从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组件中,我可以访问路由参数,但我无法访问通过location道具从NavLink传递的数据{page: 1} 我一直undefined props.location.state的值。 我该怎么办? 我不希望我传递的数据在url中。

编辑

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

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

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

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

它看起来像这样:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM