我在让react-router中的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;
我的理解是,每次状态更改时都会触发功能logUpdate。但是,只有在我通过F5重新加载相应页面时才会触发它。
我的菜单使用简单的链接,例如:
<div> <Link to="/testone">Test One</Link> <Link to="/testtwo">Test Two</Link> </div>
我究竟做错了什么?
onUpdate需要在Router不是Route的实例上声明。尽管Routes可以声明onChange并进行onEnter钩子- 可能正是您要找的东西。
onUpdate
Router
Route
onChange
onEnter