哈希历史记录不能采用相同的路径;当我更改状态而不是路径名时,不会将新条目添加到历史记录堆栈中

时间:2019-04-07 08:04:25

标签: reactjs react-router

我只想更改状态而不能更改路线

<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 个答案:

答案 0 :(得分:1)

通过“路径”导航传递的状态值不会在浏览器刷新之间保持不变,并且也不在URL中考虑。处理此类情况的更好方法是利用查询参数代替状态。因此您的网址看起来像/question?by=me/question?by=other

您可以像

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

并从location中获得类似this.props.location.search的信息,您可以使用queryString包或类似的文件进行解析