React Router v4 recursive返回

时间:2018-05-26 14:22:12

标签: reactjs react-router-v4

我有一个组件可以呈现另一个

class Items extends React.Component {
  constructor(props) {
     super(props);
  }

  render() {
      return () {
         <div>
            <div><Link to="/items/new">Go To Form</div>
            <div>
               <Switch>
                  <Route path="/items/new" component={New} />
                  <Route path="/items/:id" component={Item} />
               </Switch>
            </div>
         </div>
      }
  }

如果我从goBack()组件中调用New,它会再次呈现新组件,但我无法理解原因。

 class New extends React.Component {
    // here is costructor

    componentDidMount() {
       this.props.history.goBack();
    }         

    // render
 }  

因此,当我点击Go To Form时,它会将我移动到New组件,然后它被挂载并调用goBack并且我被重定向到Items。没关系,但在此New再次安装后,我被重定向到/items之前的路由。我尝试用go做到这一点,在这种情况下有无限循环。此外,当我尝试push代替gogoBack时,它可以正常工作。

1 个答案:

答案 0 :(得分:0)

我似乎找到了解决方案。我使用react-router-redux包中的ConnectedRouter。我已将其更改回BrowserRouter,它可以正常运行。它类似于前一个组件的错误。