在反应 i18next 中将参数传递到命名空间

Pass a parameter into namespace in react i18next

我正在使用 react i18next,我需要传递从上一个屏幕获得的命名空间作为导航道具。我的第二个屏幕的代码如下。

import { withTranslation } from "react-i18next"
let params = ""

class SecondScreen extends PureComponent {
    constructor(props) {
      super(props)
      const { navigation } = props
      params = navigation.getParam("params", {})
    }
    render() {
      ....
    }
}
export default withTranslation([`namespace1/${params}`])(SecondScreen))

我知道可以使用 useTranslation, but I need to continue my work with withTranslation 来完成,因为我正在使用 class 组件。任何帮助将不胜感激!!!

这不会起作用,因为您已经在编译过程中包装了您的组件,因此 withTranslation 正在通过 namespace/。道具的注入发生在 运行.

期间

在这个 answer 的行上,尝试写一个外部 class 来包装这个 class SecondScreen 作为内部 class 用 withTranslation HOC 在其 render 方法中。