Функция React Router goBack должна быть выполнена дважды - PullRequest
0 голосов
/ 28 ноября 2018

Я начинаю изучать реакцию маршрутизатора, и у меня возникают некоторые проблемы с использованием функции goBack, которая находится в свойстве history в React Router.

У меня есть простой маршрут, где я рендерим фиктивный пост, формирую JsonPlaceHolder API и создаю кнопку для возврата, которая выполняет эту функцию.

   returnToForwardPageHandler = () =>{
    this.props.history.goBack(); 
}

теперь постзагружается динамически, в зависимости от идентификатора, который задан.

 componentDidMount () {
    if(this.props.match.params.id){
        if ( !this.state.loadedPost || (this.state.loadedPost && this.state.loadedPost.id !== this.props.id) ) {
            axios.get( 'https://jsonplaceholder.typicode.com/posts/' + this.props.match.params.id)
                .then( response => {
                    // console.log(response);
                    this.setState( { loadedPost: response.data 
                } );
                } );
            }
        }
    }

но я получаю другой результат в зависимости от того, как указан идентификатор.

В моем компоненте, где находится идентификатор данного сообщения

  postSelectedHandler = (id) => {
    //this.setState({selectedPostId: id});
    this.props.history.push('/' + id)
}

, он работает нормально, если я вручную установил состояние идентификатора.Но мне нужно дважды нажать кнопку (выполнить функцию returnToForwardPageHandler), если я использую this.props.history.push ('/' + id), разве результат не должен быть таким же, чего мне не хватает?

1 Ответ

0 голосов
/ 25 января 2019

Надеюсь, это поможет.если нет, пожалуйста, предоставьте информацию о ваших маршрутах.

postSelectedHandler = (id) => {
    //this.setState({selectedPostId: id});
    this.props.history.push(`/${id}`)
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...