ReactJS 反应路由器
ReactJS react-router
我正在使用 ReactJS 开发应用程序,但我遇到了问题。
那是我的路由器
<Router history={browserHistory}>
<Route name="Home" path="/" component={App}>
<IndexRoute component={Home}></IndexRoute>
<Route name="Stores" path='stores' component={Stores}>
<Route name="List" path='/stores/list' component={StoreList}></Route>
<Route name="Create" path='/stores/create' component={StoreCreate}> </Route>
</Route>
<Route name="404: No Match for route" path="*" component={NoMatch} />
</Route>
</Router>
去商店的路线
不存在。但是,当我点击 link 到这条路线时,他们必须重定向做 "StoreList"
<Route name="Stores" path='stores' component={Stores}>
所以我做到了:
class Stores extends React.Component {
componentWillMount() {
this.setUrlParameters();
}
setUrlParameters() {
if (!this.props.children) {
this.context.router.push({
pathname: '/stores/list',
query: {
page: 1,
limit: 10
}
});
}
}
render() {
return (this.props.children);
}
}
我第一次点击 link,他们完善了重定向。
但是如果我再次点击,他们不会调用 componentWillMount 并且重定向不会执行。
有人可以帮助我吗?
尝试在 componentDidUpdate 中调用 this.setURlParameters() 而不是 componentWillMount
我正在使用 ReactJS 开发应用程序,但我遇到了问题。
那是我的路由器
<Router history={browserHistory}>
<Route name="Home" path="/" component={App}>
<IndexRoute component={Home}></IndexRoute>
<Route name="Stores" path='stores' component={Stores}>
<Route name="List" path='/stores/list' component={StoreList}></Route>
<Route name="Create" path='/stores/create' component={StoreCreate}> </Route>
</Route>
<Route name="404: No Match for route" path="*" component={NoMatch} />
</Route>
</Router>
去商店的路线 不存在。但是,当我点击 link 到这条路线时,他们必须重定向做 "StoreList"
<Route name="Stores" path='stores' component={Stores}>
所以我做到了:
class Stores extends React.Component {
componentWillMount() {
this.setUrlParameters();
}
setUrlParameters() {
if (!this.props.children) {
this.context.router.push({
pathname: '/stores/list',
query: {
page: 1,
limit: 10
}
});
}
}
render() {
return (this.props.children);
}
}
我第一次点击 link,他们完善了重定向。 但是如果我再次点击,他们不会调用 componentWillMount 并且重定向不会执行。
有人可以帮助我吗?
尝试在 componentDidUpdate 中调用 this.setURlParameters() 而不是 componentWillMount