我在reducers中做了一些狀態返回值爲logged_in
,它有一個布爾值。React REDX如何使用react-router重定向到特定頁面
這裏是我的代碼:
import React from 'react'
import { render } from 'react-dom'
import { Router, Route, Link } from 'react-router'
import { connect } from 'react-redux'
export class NewStock extends React.Component {
componentWillMount() {
const { router, session } = this.props;
if (session.userSessionData.get('logged_in') == false) {
router.transitionTo('/login');
}
};
render() {
const { router, session } = this.props
const currentRoute = router.location.pathname
return (
<div className="row">
<h1>Hello World</h1>
</div>
)
}
}
function select(state) {
return {
router: state.router,
flash: state.flash.get('newStock'),
newStock: state.newStock,
session: state.session
}
}
export default connect(select)(NewStock)
該組件是/new
路徑
我要檢查每次在這個頁面的訪問,這將檢查logged_in
狀態是true
或false
。如果它false
用戶將被重定向到/login
頁面。
componentWillMount() {
const { router, session } = this.props;
if (session.userSessionData.get('logged_in') == false) {
router.transitionTo('/login');
}
};
但它返回一個錯誤,指出:
Uncaught TypeError: router.transitionTo is not a function
任何人有同樣的問題?在此先感謝