You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用i18n-js遇TypeError问题求助(Expo 48.09.9+RN7.20.0)

解决i18n-js "Cannot set property 'fallbacks' of undefined" 错误

这个错误是因为你使用的i18n-js v4+版本和教程里的旧版API不兼容导致的——新版改用了createI18n工厂函数来初始化实例,不再支持直接修改全局i18n对象的属性。

修复步骤:

  1. 确认你的i18n-js版本:查看package.json,如果是^4.0.0及以上,按下面的方式重构代码。
  2. 用createI18n初始化i18n实例,把fallbacks相关配置整合到初始化参数里:
import { createI18n } from 'i18n-js';

// 你的多语言翻译内容
const translations = {
  en: {
    welcome: 'Welcome',
    // 其他翻译键值对
  },
  zh: {
    welcome: '欢迎',
    // 其他翻译键值对
  },
};

// 创建i18n实例并配置
const i18n = createI18n({
  locale: 'en', // 当前语言
  fallbackLocale: 'en', // 替代原来的fallbacks配置
  translations,
});

export default i18n;
  1. 在项目中使用这个实例进行翻译,比如:
import i18n from './path-to-your-i18n-config';

// 使用翻译
console.log(i18n.t('welcome'));

为什么原来的写法失效?

旧版i18n-js会导出一个全局的i18n对象,允许直接修改i18n.fallbacks等属性;但v4+版本为了更好的树摇和模块化,改为通过createI18n创建独立实例,直接访问全局i18n对象会得到undefined,也就出现了你遇到的赋值错误。

内容的提问来源于stack exchange,提问作者Daniele Grillo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 10:42:04