我正在使用
react-native-localization
库是我的 RN 项目。
我的RN版本是
0.59.4
我已经让该项目按预期在 Android 上运行,但问题出在
IOS
构建上。
我
npm
安装了react-native-localization
和react-native-localize
,并按照其github手册中的描述使用pod链接它们。
我做了我能做的一切,从链接到清理,再到多次构建项目。
但是我在运行时遇到此错误
react-native-localize NativeModule.RNLocalize is null. To fix this issue try these steps
,并且我按照控制台告诉我的操作进行了操作,但徒劳无功。
有人可以告诉我我做错了什么吗?
像这样创建一个模拟文件(在根目录中):
__mocks__/react-native-localize.js
检查
__mock__
是否有两个下划线。
这是文件示例:
const getLocales = () => [
// you can choose / add the locales you want
{ countryCode: "US", languageTag: "en-US", languageCode: "en", isRTL: false },
{ countryCode: "FR", languageTag: "fr-FR", languageCode: "fr", isRTL: false },
];
// use a provided translation, or return undefined to test your fallback
const findBestAvailableLanguage = () => ({
languageTag: "en-US",
isRTL: false,
});
const getNumberFormatSettings = () => ({
decimalSeparator: ".",
groupingSeparator: ",",
});
const getCalendar = () => "gregorian"; // or "japanese", "buddhist"
const getCountry = () => "US"; // the country code you want
const getCurrencies = () => ["USD", "EUR"]; // can be empty array
const getTemperatureUnit = () => "celsius"; // or "fahrenheit"
const getTimeZone = () => "Europe/Paris"; // the timezone you want
const uses24HourClock = () => true;
const usesMetricSystem = () => true;
const addEventListener = jest.fn();
const removeEventListener = jest.fn();
export {
findBestAvailableLanguage,
getLocales,
getNumberFormatSettings,
getCalendar,
getCountry,
getCurrencies,
getTemperatureUnit,
getTimeZone,
uses24HourClock,
usesMetricSystem,
addEventListener,
removeEventListener,
};
您不必导入
node_module
的react-native-localization
,因为__mocks__
下的每个文件都会被自动模拟。
尝试再次运行测试并检查错误是否仍然存在。
编辑:就我而言,我需要的唯一功能是
react-native-localize
,所以我的模拟文件非常短:uses24HourClock()
这就是我的全部。
const uses24HourClock = () => false;
export { uses24HourClock };