Измените метку кнопки «go назад» в соответствии с последней страницей, которую посетил веб-сайт реакции-маршрутизатор - PullRequest
1 голос
/ 07 января 2020

Я пытаюсь реализовать кнопку возврата go с помощью response-router-dom. Кнопка работает нормально, но моя проблема состоит в том, чтобы изменить ее метку в соответствии с последней посещенной страницей. Эта кнопка появится только в одном указанном c компоненте, доступ к которому можно получить с двух разных страниц.

import { useHistory } from "react-router-dom";

export const GoBack = ({ label }) => {
  const history = useHistory();
  return (
    <div>
      <button onClick={() => history.goBack()}>{label}</button>
    </div>
  )
};

Приветствия!

1 Ответ

0 голосов
/ 07 января 2020

Передайте свое текущее местоположение следующим образом:
, используя Link

<Link to="/next" state={{ prevPath: this.props.location.pathname }}> Your Next path</Link>`

история нажатий:

this.props.history.push({
  pathname: '/next',
  state: { prevPath: this.props.location.pathname }
})

Не забудьте обернуть свой компонент с помощью withRouter (this.props.location не будет доступен в противном случае).
Теперь вы можете получить prevPath внутри следующего компонента

componentDidMount(){
    const{prevPath}=this.props.location.state;   //I think it here but google to make sure
    this.setState({
        prevPath
    })
}

Теперь вы можете обработать вашу кнопку:

render(){
    return(
        <div>
            {this.state.prevPath=="yourrequiredprevpath"&&<button>go johnny go</button>}
        </div>
    )
}

Я сильно Я чувствую, что есть лучший и более устойчивый ответ на ваш вопрос, но поскольку никто не ответил, он не даст вам покоя, пока вы его не найдете.

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