使用React i18next我必须使用withTranslation吗?

时间:2019-04-04 14:10:26

标签: reactjs i18next react-i18next

我在想什么。

说我有一个组件,我想访问t值。我是否必须将其挂接到redux。由于要使用react-i18next,因此我也不能仅使用i18next

import i18next from 'i18next'

class Comp extends Component {
    render() {
      return <Text>{i18next.t('space')}</Text>
    }
}

或者这样做的缺点是什么?看来我的翻译仍在进行,但必须有不利之处吗?我猜只有在语言环境更改后才能看到更新吗?还有吗?

谢谢。

1 个答案:

答案 0 :(得分:0)

您不能在React Component类上使用钩子(至少没有HOC)。

最好的办法是导入withTranslation并通过此组件导出类。

我的意思是

// Other imports
import { withTranslation } from "react-i18next";

class ClassComponent extends React.Component {
    //Code of your class
}

export default withTranslation()(ClassComponent);

请注意,渲染时应使用t来调用this.props.t