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您的修复程序解决了我的问题。你能详细说明一下吗:)