我一直在关注react-router-dom' s Redirect的文档。现在,我有一个类似的组件呈现以下内容:
return <Redirect to={{ pathname: '/login', state: { previousPath: path } }} />;
但是,我不确定如何在新路径中访问状态previousPath
。文档不清楚。我如何访问previousPath
?
答案 0 :(得分:1)
您的一个父组件应为Route
,其中包含道具:匹配,位置,历史记录。您应该能够使用通过props.location.state
创建的状态来访问previousPath
值。
请参阅React Router文档中的location。
答案 1 :(得分:0)
使用mapStateToProps中的ownProps
解决了问题:
在我的Login
组件(重定向所在的组件)中,我将此添加到我的mapStateToProps
:
const mapStateToProps = (state, ownProps) => ({
...
previousPath: ownProps.location.state.previousPath,
});
然后在我的道具中,现在我可以访问previousPath
。
答案 2 :(得分:0)
根据https://github.com/ReactTraining/react-router/blob/master/packages/react-router/docs/api/Redirect.md:
<Redirect
to={{
pathname: "/login",
search: "?utm=your+face",
state: { referrer: currentLocation }
}}
/>