React Router v4 рекурсивный возврат - PullRequest
0 голосов
/ 26 мая 2018

У меня есть компонент, который отображает другой

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
 }  

Поэтому, когда я нажимаю кнопку «Перейти к форме», он перемещает меня в новый компонент, затем он монтируется и вызывается goBack, и я перенаправляюсь на Items.Все нормально, но после этого New снова монтируется, и меня перенаправляют на маршрут, который был до /items.Я попытался сделать это с go, и в этом случае есть бесконечный цикл.Кроме того, когда я пытаюсь сделать push вместо go и goBack, он работает правильно.

1 Ответ

0 голосов
/ 26 мая 2018

Кажется, я нашел решение.Я использую ConnectedRouter из пакета response-router-redux .Я изменил его обратно на BrowserRouter, и он работает без проблем.Это похоже на ошибку с предыдущим компонентом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...