Невозможно переключить сцены после вложения - PullRequest
0 голосов
/ 29 декабря 2018

Мне удалось перейти к списку сотрудников, но я получил кнопку возврата.Поэтому я попытался вложить их в отдельные сцены, но когда я попытался вложить сцены, он больше не будет переходить к следующей сцене.Вот мой код.

В нижней части моего файла действий с индексами у меня есть действие с именем loginUserSuccess, внутри действия loginUserSuccess есть строка Actions.employeeList ().

Я все ещеиспользуя тот же ключ сцены employeeList.

src / actions / index.js

import firebase from '@firebase/app';
import { Actions } from 'react-native-router-flux';
import {
  EMAIL_CHANGED,
  LOGIN_USER,
  LOGIN_USER_FAIL,
  LOGIN_USER_SUCCESS,
  PASSWORD_CHANGED
} from './types';

export const emailChanged = text => {
  return {
    type: EMAIL_CHANGED,
    payload: text
  };
};

export const passwordChanged = text => {
  return {
    type: PASSWORD_CHANGED,
    payload: text
  };
};

export const loginUser = ({ email, password }) => {
  return dispatch => {
    dispatch({ type: LOGIN_USER });

    firebase
      .auth()
      .signInWithEmailAndPassword(email, password)
      .then(user => loginUserSuccess(dispatch, user))
      .catch(error => {
        console.log(error);
        firebase
          .auth()
          .createUserWithEmailAndPassword(email, password)
          .then(user => loginUserSuccess(dispatch, user))
          .catch(() => loginUserFail(dispatch));
      });
  };
};

const loginUserFail = dispatch => {
  dispatch({ type: LOGIN_USER_FAIL });
};

const loginUserSuccess = (dispatch, user) => {
  dispatch({
    type: LOGIN_USER_SUCCESS,
    payload: user
  });
  console.log(Actions.currentScene);
  Actions.employeeList();
  console.log(Actions.currentScene);
};

Внутри этого файла маршрутизатора я вложил сцену входа в сцену auth и вложил employeeListсцена внутри главной сцены.Именно здесь началась моя проблема с переключением сцен.

src / Router.js

import React from 'react';
import { Scene, Router } from 'react-native-router-flux';
import LoginForm from './components/LoginForm';
import EmployeeList from './components/EmployeeList';

const RouterComponent = () => {
  const { navigationBarTitleStyle } = styles;

  return (
    <Router>
      <Scene key="root">
        <Scene key="auth">
          <Scene
            key="login"
            component={LoginForm}
            title="Please Login"
            titleStyle={navigationBarTitleStyle}
            initial
          />
        </Scene>
        <Scene key="main">
          <Scene
            key="employeeList"
            component={EmployeeList}
            title="Employee List"
            titleStyle={navigationBarTitleStyle}
          />
        </Scene>
      </Scene>
    </Router>
  );
};

const styles = {
  navigationBarTitleStyle: {
    flex: 1,
    textAlign: 'center'
  }
};

export default RouterComponent;

Кто-нибудь знает, в чем может быть проблема?Я следую руководству Стивена Грайдера «Полный курс React Native и Redux» по Udemy, но «Реагировать нативно» - такая быстро движущаяся цель.

1 Ответ

0 голосов
/ 30 декабря 2018

Я выяснил, в чем проблема, мне нужно было изменить свой Actions.employeeList ();в Actions.main ();в файле src / actions / index.js.

Мне нужно было нацелить родителя, а не ребенка внутри этой сцены.Затем он загрузит первую сцену внутри главной сцены.Я мог бы также установить начальный в employeeList, чтобы быть более ясным об этом.

...