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

Javascript 使用react路由器从主页重定向到特定页面后访问从NavLink传递的数据,javascript,reactjs,react-router,react-router-dom,Javascript,Reactjs,React Router,React Router Dom,我正在使用react路由器开发react web应用程序。我想将数据从NavLink传递到我的Movies组件。NavLink如下所示 影视 在我的路由器中,我想从登录页重定向到movies/all/1。我的路线是: } /> 在Movies组件中,我可以访问路由参数,但无法访问通过location道具从NavLink传递的数据{page:1}。我不断得到未定义的作为props.location.state的值。我该怎么办?我不希望传递的数据位于url中 编辑 也许要澄清一下。下

我正在使用react路由器开发react web应用程序。我想将数据从
NavLink
传递到我的
Movies
组件。
NavLink
如下所示


  • 影视
在我的路由器中,我想从登录页重定向到
movies/all/1
。我的路线是:


} />
Movies
组件中,我可以访问路由参数,但无法访问通过
location
道具从
NavLink
传递的数据
{page:1}
。我不断得到
未定义的
作为
props.location.state
的值。我该怎么办?我不希望传递的数据位于
url

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


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

重定向
组件未传递
位置。状态
到下一个路由(即
/movies/all/1

如果你想这样做,你需要从你的路线
/
中获取
位置.状态
,并将其传递给
重定向

看起来是这样的:

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

这是否回答了您的问题?一个可能的重复:检查我在上面所做的编辑它工作,但只有在链接被点击后。我希望在页面加载时立即传递数据。如果访问者到达该站点,他/她将从
/
页面重定向到
电影/all/1
。即
状态
的值为
未定义
时。如果您先单击
NavLink
,则数据可以正常传递。我认为您无法定义页面加载的历史状态。您可以在
Movies
组件中执行此操作,无论您在哪里访问
page
value,都需要执行类似
const page=location.state?.page | 1
因此,当
未定义时,它将默认为
1
,这是我已解决的解决方案。非常感谢。