Я вижу сообщение об ошибке «Приложение не зарегистрировано» при попытке инициализировать приложение, поддерживающее реакцию, с помощью функции startSingleScreenApp в системе response-native-navigation.
версии библиотеки:
реагировать-native: 0.54.0, реагировать-native-navigation: 1.1.407
У меня есть корневой редуктор для навигации:
export default function createReducer(initialState, handlers) {
return function reducer(state = initialState, action) {
if (handlers.hasOwnProperty(action.type)) {
return handlers[action.type](state, action)
} else {
return state
}
}}
export const navigate = createReducer(
Immutable({
root: undefined
}), {
[types.NAV__APP_ROOT_CHANGED](state, action) {
if (state != null) {
return state.merge({
root: action.root
});
} else {
return state;
}
}
});
Регистрация экранов:
export function registerScreens (store, provider) {
Navigation.registerComponent('app.init', () => AppRoot, store, provider);
Navigation.registerComponent('app.login.registration', () => LoginRegistration, store, provider);}
Точка входа в приложение: (index.js)
export default class App {
constructor() {
store.subscribe(this.onStoreUpdate.bind(this));
store.dispatch(navActions.appInitialized('login'))
}
onStoreUpdate() {
const {root} = store.getState().navigate;
if (this.currentRoot != root) {
this.currentRoot = root;
this.startApp(root);
}
}
startApp(root) {
switch (root) {
case 'login':
Navigation.startSingleScreenApp({
screen: {
screen: 'app.init',
title: 'App'
}
});
return;
default:
return;
}
}}
const app = new App();
Я вижу, что действие отправляется и обрабатывается подпиской магазина, но приложение не загружается. Я просто вижу сообщение об ошибке, в котором говорится, что приложение не зарегистрировано (корневая папка для реакции - это приложение)
Любая помощь приветствуется. Спасибо!