Как исправить wix Navigation.registerAppLaunchedListener ()? - PullRequest
0 голосов
/ 02 октября 2019

Свежий реактивный проект (версия 0.61.1), работающий над реализацией приставки с навигацией по wix (v ^ 2.27.9), начинающийся в настройках регистрации / входа на основе вкладок, до тех пор, пока не будет проведена аутентификация, после чего наступает другая навигационная раскладка.

Я пробовал Navigation.setRoot()' and Navigation.startTabBasedApp (). Оба бросают свои ошибки.

Моя реализация в app.js:

import {Component} from 'react';
import {Provider} from 'react-redux';
import {Navigation} from 'react-native-navigation';
import ReduxThunk from 'redux-thunk';
import {registerScreens} from './src/screens';
import configureStore from './src/store/configureStore';

const store = configureStore();

registerScreens(store, Provider);

class App extends Component {
  constructor(props) {
    super(props);
    store.subscribe(this.onStoreUpdate.bind(this));
    this.startApp();
  }

  onStoreUpdate() {
    const {user} = store.getState().auth;
    if (this.currentUser !== user) {
      this.currentUser = user;
      this.startApp(user);
    }
  }

  startApp(user) {
    console.log(user);

    Navigation.events().registerAppLaunchedListener(() => {
      switch (user) {
        case !undefined:
          Navigation.startSingleScreenApp({
            screen: {
              screen: 'Authenticated', 
              title: "You're authenticated",
              navigatorStyle: {}, 
              navigatorButtons: {}
            },
          });
          break;
        default:
          Navigation.startTabBasedApp({
            tabs: [
              {
                screen: 'Login',
                label: 'Login',
              },
              {
                screen: 'Register',
                label: 'Register',
              },
            ],
            tabsStyle: {
              intialTabIndex: 1,
            },
          });
      }
    });
  }
}
export default App;

это ошибка: TypeError: undefined is not a function (near '..._reactNativeNavigation.Navigation.startTabBasedApp...')

Если я поменяю startTabBasedApp с Navigation.setRoot(), например:

Navigation.setRoot({
          root: {
            bottomTabs: {
              children: [
                {
                  component: {
                    name: 'Login',
                    options: {
                      bottomTab: {
                        text: 'Login',
                      },
                    },
                  },
                },
                {
                  component: {
                    name: 'Register',
                    options: {
                      bottomTab: {
                        text: 'Register',
                      },
                    },
                  },
                },
              ],
            },
          },
        });

Я получаю эту ошибку:

TypeError: concreteComponentProvider is not a function. (In 'concreteComponentProvider()', 'concreteComponentProvider' is an instance of Object)

Я хочу, чтобы приложение открывалось в приложении на основе вкладок, где одна вкладка представляет собой экран «Регистрация», а другая -экран "Вход в систему"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...