Хеш-история не может толкнуть тот же путь;новая запись не будет добавлена ​​в стек истории, когда я изменяю состояние, а не путь - PullRequest
0 голосов
/ 07 апреля 2019

Я хочу изменить только состояние, а не маршрут

<Link to ={{
    pathname: "/questions", 
    state: { 
        by: 'me' 
    }
   }} >
 Me
</Link>

на

 <Link to ={{
        pathname: "/questions", 
        state: { 
            by: 'others' 
        }
       }} >
     others
    </Link>

состояние не меняется и при выдаче консоли Warning: Hash history cannot PUSH the same path; a new entry will not be added to the history stack

1 Ответ

1 голос
/ 07 апреля 2019

Значение состояния, переданное через навигацию по маршруту, не сохраняется при обновлении браузера и не учитывается в URL-адресе. Лучший способ справиться с такими сценариями - использовать параметры запроса вместо состояния. Таким образом, ваш URL будет выглядеть как /question?by=me или /question?by=other

Вы можете передать его как

<Link to ={{
    pathname: "/questions", 
    search: '?by=others'
   }} >
   others
</Link>

и получите от location как this.props.location.search, который вы можете проанализировать, используя пакет queryString или аналогичный

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