@terranmoccasinの答えは正しいです。しかし、一般的な必要性は非常に少数の例に対処しています。
たとえば、複数のルート(dashboard1、dashboard2、...)を保護する必要があるとします。ログイン後、どのように元のページにリダイレクトするのですか?つまり、{nextPathname: nextState.location.pathname}
で何をしていますか?ここで
は、私が./containers/LoginContainer.js
に何をすべきかです:
import { push } from 'react-router-redux';
const mapStateToProps = (state) => ({
nextPathname: state.routing.locationBeforeTransitions.state.nextPathname,
});
const mapDispatchToProps = (dispatch) => ({
changeLocationOnSignIn: (nextPathname) => {
dispatch(push(nextPathname));
},
});
と./components/Login.js
componentWillReceiveProps(nextProps) {
// user signed in or signed up, assuming redux. you may use this elsewhere.
if (nextProps.user.status === 'authenticated' && nextProps.user.user &&
!nextProps.user.error) {
this.props.changeLocationOnSignIn(this.props.nextPathname);
}
で反応ルータ2.4.0(2016年4月)をHOCを作成するwithRouterを導入しました。ただし、JSクラスではなくReact.createClassをラップします。私はそれをredux形式などで動作させることができませんでした。私は、上記のコードは理解しやすいと考えています。
[反応ルータでログインした後の自動リダイレクト]の可能な複製(0120-13-03)。 –