【发布时间】:2021-02-12 05:15:19
【问题描述】:
用户选择语言后,如何从代码中触发页面重新加载?
我正在使用 Next JS 10.0 和新的 i18 功能,所以我的两个网址是
- localhost/en/dashboard
- localhost/sp/dashboard
在我的反应按钮上单击我尝试过
router.push(`/${lang}/Dashboard`)
这可行,但是有没有一种方法可以让我不必手动重新编码当前页面位置?
【问题讨论】:
用户选择语言后,如何从代码中触发页面重新加载?
我正在使用 Next JS 10.0 和新的 i18 功能,所以我的两个网址是
在我的反应按钮上单击我尝试过
router.push(`/${lang}/Dashboard`)
这可行,但是有没有一种方法可以让我不必手动重新编码当前页面位置?
【问题讨论】:
您不得将lang 或语言环境用作您的网址字符串的一部分。请尝试以下方法。
router.push('/dashboard', '/dashboard', { locale: 'YOUR_NEW_LOCALE' })
如果您想知道为什么有两个“/dashboard”,那是因为第一个是to,第二个是as。 You can read about it more here
【讨论】:
router.pathname 将为您提供您所在的位置。此外,如果您尝试在没有任何其他功能的情况下从一个页面导航到另一个页面,您应该考虑使用Link 标记。您可以在我在答案中包含的链接中阅读。
【讨论】: