React-i18next 在changeLanguage 上导航回导航中的第一个屏幕

Ded*_*ddy 2 i18next reactjs react-native react-i18next

我的问题是,当使用react-18next更改语言时,它会导航回第一个屏幕。

我这样称呼它:

i18n.changeLanguage('en')

我有像这样的初始化:

i18n.use(initReactI18next).init({
  resources: {
    en: {
      translation: en
    },
    nl: {
      translation: nl
    }
  }
})
Run Code Online (Sandbox Code Playgroud)

如果我的导航有 ['主'、'设置'、'语言'] 等路线,并且我的语言更改按钮位于语言视图中(我在那里导航:主 -> 设置 -> 语言),它会将用户重定向到主屏幕语言改变后。

语言改变正确,一切正常,除了它似乎重置了一切。我没有任何特定的导航设置。

有人经历过这样的事情吗?

小智 5

感谢您的提问和回答,它帮助我解决了这个问题。看,实际上您可以在导航组件内使用 useTranslation 挂钩,但不要在路线名称处传递 t('translation') 。你需要做的是:

 <Tab.Screen
    name="Home" {/* this stays un-translated*/}
    options={{tabBarLabel: t('navigate:home')}} {/* this takes the translation function instead*/}
    component={HomeScreen}
  />
Run Code Online (Sandbox Code Playgroud)

来源:这个惊人的例子