2017-08-31 1 views
0

私はreact-router-domのRedirectのドキュメントに従っています。今、私はそのようなコンポーネントは次のようにレンダリングします:react-router-domの状態を使ったリダイレクトの使用

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

しかし、私は私の新しいパスの状態でpreviousPathにアクセスするかどうかはわかりません。これに関する文書は明確ではない。 previousPathにアクセスするにはどうすればよいですか?

答えて

1

親コンポーネントの1つはRouteで、小道具は一致、場所、履歴が必要です。 props.location.stateで作成した状態を使用してpreviousPathの値にアクセスできるはずです。

リアクタルータのドキュメントのlocationを参照してください。

+0

ありがとうJulian。 'previousPath'を正しい値に設定することができます...しかし、私は別のコンポーネントで' previousPath'にアクセスする方法を知りたいのですか?すなわち、リダイレクトからレンダリングされるコンポーネント – frogbandit

0

mapStateToPropsownPropsを使用して、それを解決:

を(リダイレクトが行く)私のLoginコンポーネントでは、私は私のmapStateToPropsにこれを追加しました:私の小道具で

const mapStateToProps = (state, ownProps) => ({ 
    ... 
    previousPath: ownProps.location.state.previousPath, 
}); 

そして、今、私がアクセス権を持っていますpreviousPath

+0

mapStateToPropsはredux:Pからです。私の更新された答えを見れば、私はあなたを30分以上打ちつけることがわかります –

関連する問題