是否有一种正式的方法可以导入我定义的路由并从另一个 React 组件重定向到该路由器中的命名模式?
假设我的路线如下所示:
# router.cjsx
Routes = require'react-router').Routes
Route = require('react-router').Route
React.renderComponent((
<Routes location="history">
<Route handler={App}>
<Route name="login" handler={LoginComponent} path="/login/" />
</Route>
</Routes>
), document.body)
我有一个这样的组件:
# my-component.cjsx
React = require('react')
module.exports = React.createClass
componentDidMount: ->
# If user is not authenticated, redirect them to the login component
if not @props.user.isAuthed
window.location.replace('/login/') # I WOULD RATHER NOT HARDCODE THIS URL
两个问题:
- 我应该使用
window.location.replace()
还是其他一些 React-Router 方法来处理程序重定向? - 有没有办法导入路由器并重定向到命名路由?
我想写一些类似的东西:
# my-component.cjsx
MyAppRouter = require('./router').MyRouter # Should I be exporting this?
window.location.replace(MyAppRouter.login)