ユーザーをログアウトする (ユーザーをログアウトするアクションをディスパッチする) ために使用できる URL を定義したいと考えています。イベントをディスパッチするルートを実装する方法を示す例は見つかりませんでした。
質問する
33693 次
3 に答える
11
/logout
このようなページの最新の実装は次のとおりです。
import { Component, PropTypes } from 'react'
import { connect } from 'react-redux'
import { withRouter } from 'react-router'
import * as authActionCreators from '../actions/auth'
class LogoutPage extends Component {
componentWillMount() {
this.props.dispatch(authActionCreators.logout())
this.props.router.replace('/')
}
render() {
return null
}
}
LogoutPage.propTypes = {
dispatch: PropTypes.func.isRequired,
router: PropTypes.object.isRequired
}
export default withRouter(connect()(LogoutPage))
于 2016-07-08T18:20:10.137 に答える
9
ルートを定義します/authentication/logout
:
import React from 'react';
import {
Route,
IndexRoute
} from 'react-router';
import {
HomeView,
LoginView,
LogoutView
} from './../views';
export default <Route path='/'>
<IndexRoute component={HomeView} />
<Route path='/authentication/logout'component={LogoutView} />
<Route path='/authentication/login' component={LoginView} />
</Route>;
LogoutView
に対してアクションをディスパッチする を作成しますcomponentWillMount
。
import React from 'react';
import {
authenticationActionCreator
} from './../actionCreators';
import {
connect
} from 'react-redux';
import {
pushPath
} from 'redux-simple-router';
let LogoutView;
LogoutView = class extends React.Component {
componentWillMount () {
this.props.dispatch(authenticationActionCreator.logout());
this.props.dispatch(pushPath('/'));
}
render () {
return null;
}
};
export default connect()(LogoutView);
componentWillMount
コールバックは 2 つのアクションをディスパッチします。
- ユーザー セッションを破棄します。
- ユーザーを にリダイレクトするには、
IndexRoute
.
this.props.dispatch(authenticationActionCreator.logout());
this.props.dispatch(pushPath('/'));
于 2016-01-11T11:11:31.937 に答える