React Native中的i18next:导入{t}不起作用(在React Web中有效)

时间:2019-01-09 04:08:45

标签: reactjs typescript react-native i18next

以下代码可在正常的React项目中运行(如果有问题,我正在使用打字稿):

import {t} from "i18next";

const translation = t('WelcomeMessage');

相同的代码在React Native项目中不起作用,并给出错误:

import i18n, {t} from "i18next";

const translation1 = i18n.t('WelcomeMessage');   //works ok
const translation = t('WelcomeMessage'); //ERROR: (0, _i18next.t) is not a function

为什么t('WelcomeMessage')在RNative中不起作用?

与i18next如何在typedefinitions(export = i18next;)中导出有关?

1 个答案:

答案 0 :(得分:0)

您可以使用i18n-js实现此功能 https://github.com/fnando/i18n-js/releases

创建一个.js文件。

import i18n from 'i18n-js';

import en from '../translations/en.json';
import ar from '../translations/ar.json';

i18n.fallbacks = true;
i18n.translations = { en, ar };

export default i18n;

在组件类中调用此i18n.js文件

import i18n from './i18n'
class Test extends Component {

   render(){
     return(
        <Text>i18n.t('sample')</Text>
     )
   }

}