[英]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.