如何使用react-router-dom

时间:2019-01-30 21:23:13

标签: reactjs react-router-dom

我正在通过以下方式定义React项目的路由,使URL看起来像http://something.com/en-us/homehttp://something.com/fr-ca/home

<Route path="/:language/home" render={() => <Home/>}/>

在计划路径变量“:language”不是真正的语言(即将http://something.com/xyz/home重定向到http://something.com/en-us/home)的情况下,我最初在{中调用了方法setDefaultLanguage {1}},旨在使用浏览器的语言代码刷新页面。取而代之的是,此方法在每次装入页面时都会刷新页面。

componentDidMount

如果浏览器的语言代码不存在(根本不存在或在允许的语言列表中),我如何正确处理对用户浏览器语言(如果我们的列表支持)或{{1} }?

1 个答案:

答案 0 :(得分:0)

您的checkLangInMasterList返回的布尔值不是-1。 您的代码应如下所示:

if (!checkLangInMasterList(pathnames[1])) {
    // do stuff here
}

此外,如果path变量等于浏览器语言,则应停止重定向。

因此,根据您想要的逻辑,这里是它的样子:

if (checkLangInMasterList(pathnames[1]) {
    return
}
if (checkLangInMasterList(browserLanguage) {
    window.location = `/${browserLanguage}/${pathnames[2]}`
} else {
    window.location = `/${en-us}/${pathnames[2]}`
}