Недопустимый тип элемента: ожидается строка при использовании NavigatorIOS на React Native
Я получаю сообщение об ошибке при попытке визуализации компонента NavigatorIOS. При попытке с простым представлением и текстом все работало нормально. Но для NavigatorIOS выдает ошибку.
import React, {Component} from 'react';
const LandingPage = require('./layouts/landing_page/LandingPage');
const I18n = require('react-native-i18n');
const AsyncStorageHelper = require('./ios_commons/helper/AsyncStorageHelper');
const moment = require('moment');
var TranslationProperty = require('./properties/TranslationProperties.json');
import {StyleSheet, StatusBar, NavigatorIOS} from 'react-native';
export default class App extends Component<{}> {
constructor(props) {
super(props);
this.state = {};
I18n.fallbacks = true;
I18n.translations = require('./ios_commons/Strings');
// Text.defaultProps.allowFontScaling = false;
StatusBar.setBarStyle('light-content', true);
this.loadAppSpecificLanguage();
}
loadAppSpecificLanguage = () => {
AsyncStorageHelper.getAppSpecificLanguage()
.then(item => {
if (item !== null) {
console.log('Found app specific locale ' + item);
let userDefinedLocale = JSON.parse(item).code;
I18n.locale = userDefinedLocale;
moment.locale(userDefinedLocale);
} else {
console.log('App specific language property not found');
let defaultLocale = TranslationProperty.slice()[0];
if (defaultLocale === null || defaultLocale === undefined) {
console.log(
'LOCALIZATION WARNING: Couldn\'t find default locale. Setting to locale \'en\'',
);
I18n.locale = 'en';
moment.locale('en');
} else {
console.log('Setting default locale ' + defaultLocale.code);
moment.locale(defaultLocale.code);
AsyncStorageHelper.saveAppSpecificLanguage(defaultLocale);
}
}
})
.catch(error => {
console.log('Failed to obtain app specific language ' + error);
});
};
render() {
return (
<NavigatorIOS
style={styles.navigationContainer}
ref="nav"
initialRoute={{
title: 'LandingPage',
component: LandingPage,
}}
navigationBarHidden={true}
/>
);
}
}
const styles = StyleSheet.create({
navigationContainer: {
flex: 1,
},
});
Ошибка, которую я вижу, выглядит следующим образом:
Необработанное исключение JS: ошибка: тип элемента недопустим: ожидается строка (для встроенных компонентов) или класс / функция (для составных компонентов), но получено: undefined. Скорее всего, вы забыли экспортировать компонент из файла, в котором он определен, или могли перепутать импорт по умолчанию и именованный импорт.
Проверьте метод рендеринга
App
.Эта ошибка находится в: в приложении (в renderApplication.js:45) в RCTView (в AppContainer.js:109) в RCTView (в AppContainer.js:135) в AppContainer (в renderApplication.js:39)
Чем это вызвано? Как это исправить?