reactjs - 反应路由器onEnter替换不起作用
问题描述
我想使用 react-router(v3.0.2) onEnter 进行身份验证,replace 方法在首次访问时不起作用,但会引发错误。我能怎么做 ?
着陆页可能受到保护。(登录验证)
export default {
path: '/',
component: LandingContainer,
onEnter: (router, replace) => {
const { store, actions } = context
const { getState, dispatch } = store
const state = getState()
const user = state.get('user')
if (!user.get('_id')) {
dispatch(actions.setReturnUrl(location.pathname +
location.search))
replace('/login')
return
}
return
},
childRoutes: [
require('./user').default || require('./user'),
require('./live').default || require('./live'),
require('./course').default || require('./course')
],
indexRoute: {
component: Main
}
}
替换不起作用,但发生错误(仅第一次渲染)
warning.js?8a56:33 Warning: Failed prop type: The prop `routes` is marked as required in `Root`, but its value is `undefined`.
in Root
warning.js?8a56:33 Warning: Failed child context type: The child context `routes` is marked as required in `Root`, but its value is `undefined`.
in Root
in AppContainer
Warning: [react-router] Location "/" did not match any routes
解决方案
推荐阅读
- google-cloud-storage - 为 SSL 设置 Google 存储桶
- c++ - Boost C++如何输出没有指数字符的浮点值的所有数字?
- c# - OOP 中的表达类型组合
- c++ - 在 C++ 中使用 openssl 以编程方式生成 CA 证书
- json - 如何在 Dart 中创建特定类型的嵌套 JSON 数据?
- report - Odoo 10 自定义 Qweb 报告:渲染编译 AST TypeError 时出错:“NoneType”对象不可调用
- asp.net - 我们真的需要在 ASP.Net MVC 中添加和编辑不同的视图吗?
- json - 无法将类型“()”的值转换为预期的参数类型“数据”
- ios - 动画 SceneKit SCNNode 位置不起作用
- android - Viewpager2 将手势传递给父 BottomSheetDialogFragment