Reactjs 反应路由器-无法读取属性';查询';未定义的
我有一个错误:Reactjs 反应路由器-无法读取属性';查询';未定义的,reactjs,react-router,Reactjs,React Router,我有一个错误: 无法读取未定义的属性“query” 当我导航到/dashboard时 app.jsx是这样的 从“React”导入React 从'react dom'导入{render} 从“react Router”导入{Router,Route,Link} 从“历史”导入{createHistory} const App=React.createClass({ getInitialState(){ 返回{ 洛格丁:错 } }, render(){ 返回( {this.state.lo
无法读取未定义的属性“query”
当我导航到/dashboard时
app.jsx是这样的
从“React”导入React
从'react dom'导入{render}
从“react Router”导入{Router,Route,Link}
从“历史”导入{createHistory}
const App=React.createClass({
getInitialState(){
返回{
洛格丁:错
}
},
render(){
返回(
-
{this.state.loggedIn(
注销
) : (
登录
)}
- 仪表板(已验证)
)
}
})
const Dashboard=React.createClass({
render(){
返回(
仪表板
你成功了
)
}
})
const Login=React.createClass({
上下文类型:{
路由器:React.PropTypes.object.isRequired
},
getInitialState(){
返回{
错误:false
}
},
render(){
返回(
登录表单在这里!
)
}
})
功能要求授权(下一状态,替换){
如果(真){
替换({
路径名:'/login',
状态:{nextPathname:nextState.location.pathname},
查询:“”,
})
}
}
var history=createHistory()
渲染((
),document.getElementById('main'))
- ReactDOM v0.14.6
- 反应(与插件)v0.14.6
- react路由器:2.0.0-rc5(保存在节点_模块/react路由器下的umd目录中)
当调用
replace
函数时,问题就出现了。我认为问题在于您的require auth函数
React router在这里有一个auth示例
我会像这样重构函数
function requireAuth(nextState, replaceState) {
if (true)
replaceState({ nextPathname: nextState.location.pathname }, '/login')
}
replace()
do做什么?该应用程序是否通过删除仪表板路由的onEnter来工作?我与react router 1.03有相同的错误。在您发布的示例中,如果用户已登录,auth函数将要求对对象进行身份验证。对于semplicity,我删除了auth对象。错误堆栈显示错误是由replaceState调用生成的。@Daniel您的修复程序解决了我的问题。你能详细说明一下吗:)