使用react-router-dom重定向状态

时间:2017-08-31 23:10:27

标签: javascript reactjs redux react-router react-router-dom

我一直在关注react-router-dom' s Redirect的文档。现在,我有一个类似的组件呈现以下内容:

return <Redirect to={{ pathname: '/login', state: { previousPath: path } }} />;

但是,我不确定如何在新路径中访问状态previousPath。文档不清楚。我如何访问previousPath

3 个答案:

答案 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 }
  }}
/>