问题描述
我希望无需重新加载页面即可在仅限客户端的 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 (将#修改为@)