Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 更换挂钩时的反应_Javascript_Reactjs_React Router - Fatal编程技术网

Javascript 更换挂钩时的反应

Javascript 更换挂钩时的反应,javascript,reactjs,react-router,Javascript,Reactjs,React Router,我在react路由器中的onChange钩子正常工作时遇到问题。这是我的路由文件: import React from 'react'; import { Router, Route, browserHistory } from 'react-router'; import TestOne from './Pages/testone'; import TestTwo from './Pages/testtwo'; function logUpdate() { console.log('

我在react路由器中的onChange钩子正常工作时遇到问题。这是我的路由文件:

import React from 'react';
import { Router, Route, browserHistory } from 'react-router';
import TestOne from './Pages/testone';
import TestTwo from './Pages/testtwo';

function logUpdate() {
    console.log('Current URL: ' + window.location.pathname);
}

const Routes = (
    <Router history={browserHistory}>
        {/* App Routes */}
        <Route path="/" component={App} lang={lang}>
            <Route path="/testone" component={TestOne} onUpdate={logUpdate} />
            <Route path="/testtwo" component={TestTwo} onUpdate={logUpdate} />
        </Route>
    </Router>);

export default Routes;
从“React”导入React;
从“react Router”导入{Router,Route,browserHistory};
从“./Pages/TestOne”导入TestOne;
从“/Pages/TestTwo”导入TestTwo;
函数logUpdate(){
log('当前URL:'+window.location.pathname);
}
常数路由=(
{/*应用程序路由*/}
);
导出默认路径;
我的理解是,每次状态更改都会触发函数logUpdate。但是,仅当我通过F5重新加载相应页面时才会触发

我的菜单使用简单链接,例如:

<div>
<Link to="/testone">Test One</Link>
<Link to="/testtwo">Test Two</Link>
</div>

测试一
测试二

我做错了什么?

需要在
路由器
实例上声明,而不是
路由
s。虽然,
Route
s可以声明和钩子-这可能是您正在寻找的。

我使用的是react router ^2.4.0,onUpdate对我不起作用。我在基本路由组件上使用了onChange

const Routes = (
    <Router history={browserHistory}>
        {/* App Routes */}
        <Route path="/" component={App} lang={lang} onChange={logUpdate}>
            <Route path="/testone" component={TestOne} />
            <Route path="/testtwo" component={TestTwo} />
        </Route>
    </Router>);
const路由=(
{/*应用程序路由*/}
);

太好了,真不敢相信我错过了!感谢IgorSvee,这些链接适用于版本2.X,现在4.0:)上的react router已从路由器组件中删除。看到这个问题了吗-