重定向组件导致“未捕获的不变违反:超出最大更新深度”

时间:2019-04-21 05:30:05

标签: reactjs react-router-dom

有人可以说明我的代码为什么返回Uncaught Invariant Violation: Maximum update depth exceeded.

export default () => {
  return (
    <BrowserRouter>
      <Switch>
        <Redirect from="/" to="/issues" />
        <Route exact path="/issues" component={IssueList} />
        <Route exact path="/issues/:id" component={IssueEdit} />
        <Route path="*" component={IssueNotFound} />
      </Switch>
    </BrowserRouter>
  );
};

但是,当我在路由列表中将<Redirect from="/" to="/issues" />组件向下移动时,错误消失了,但是功能并不是所需要的。我确实在setState方法下的IssueList组件中有一个componentDidMount

1 个答案:

答案 0 :(得分:1)

您需要精确匹配<Redirect exact from="/" to="/issues" />

否则,设置from="/"将与每个路由路径匹配,并使其无限重定向。