【发布时间】:2018-01-03 03:42:34
【问题描述】:
我正在使用 ReactRouter 并且想要在 RouteNotFound 组件被命中时执行一些设置状态(最后一个表示没有其他匹配)。
我的this.handler 做了一个 setState 以便我知道它被调用了。这当然会给我一个错误,说“无法在现有状态转换期间更新,例如在渲染中”。
有没有一种方法可以设置我的状态来告诉我哪个(我真的想知道最后一个)switch 语句被执行?
render() {
return (
<div>
<Switch>
<Route exact path="/" component={Home}/>
<Route exact path="/p1" component={p1}/>
<Route exact path="/p2" component={p2}/>
<RouteNotFound action={this.handler} ></RouteNotFound>
</Switch>
</div>
);
}
【问题讨论】:
-
您正在寻找的是 react-router 的 onEnter 功能,在 react-router-v4 中可以通过生命周期方法来实现。检查重复的问题以进行实施
标签: reactjs react-router