Javascript 使用react路由器从主页重定向到特定页面后访问从NavLink传递的数据
我正在使用react路由器开发react web应用程序。我想将数据从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中 编辑 也许要澄清一下。下
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
,这是我已解决的解决方案。非常感谢。