为什么 window.history.pushState 更新我的内容而不是 URL

问题描述

我希望无需重新加载页面即可在仅限客户端的 React 应用程序上切换语言。我能够做到这一点,但我的网址并没有像以前那样改变。

我有 2 种语言 - 法语 - /fr英语 - /en

这是我用 window.history.pushState 尝试的 URL 语言方法

function generateUrlSwitch(lang) {
    const location = window.location.pathname;
    if (location.length > 3) {
        const actualPath = location.substr(4,location.length);
        const url = `/${lang}/${actualPath}`;
         return window.history.pushState(null,null,url);
    } else {
        return '/' + lang;
    }
}

当前行为:

无需重新加载即可将内容更新为所选语言 - url 保持不变,但我可以看到参数在 en/fr 之间以毫秒为单位切换,并且当我 console.log 两个选项都在控制台中时。

预期行为:

根据所选语言更新内容,无需重新加载页面 + 根据所选语言更新 url

语言切换器只是调用函数:

  href={generateUrlSwitch('en')}
  href={generateUrlSwitch('fr')}

我做错了什么?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)