Search code examples
react-nativereduxreact-native-router-flux

Not navigating back to list after pressing Create Button


My code is here

I am taking this course

I added an action to navigate back to the employee list after hitting the create button but i am not navigating back. Can you help me understand what i might be doing wrong?

Here is the action creator file:

import firebase from 'firebase';
import Actions from 'react-native-router-flux';
import {
  EMPLOYEE_UPDATE,
  EMPLOYEE_CREATE
} from './types';

export const employeeUpdate = ({ prop, value }) => {
    return {
      type: EMPLOYEE_UPDATE,
      payload: { prop, value }
    };
};

export const employeeCreate = ({ name, phone, shift }) => {
const { currentUser } = firebase.auth();

  return (dispatch) => {
    firebase.database().ref(`/users/${currentUser.uid}/employees`)
      .push({ name, phone, shift })
      .then(() => {
        dispatch({ type: EMPLOYEE_CREATE });
        Actions.employeeList({ type: 'reset' });
      });
  };
};

This is the screen i am not navigating away from:

enter image description here


Solution

  • I got this to work:

    Router.js:

     const RouterComponent = () => {
        return (
           <Router sceneStyle={{ paddingTop: 0 }}>
           <Stack key="root" hideNavBar="true" >
             <Scene key="auth">
                <Scene key="login" component={LoginForm} title="Please Login" />
           </Scene>
    
           <Scene key="main">
             <Scene
               key="employeeList"
               onRight={() => Actions.employeeCreate()}
               rightTitle="Add"
               component={EmployeeList}
               title="Employees List"
               initial
            />
          <Scene key="employeeCreate" component={EmployeeCreate} 
               title="Create Employee" />
          <Scene key="employeeEdit" component={EmployeeEdit} title="Edit 
             Employee" />
        </Scene>
      </Stack>
    </Router>
     );
    };
    

    EmployeeActions.js:

     export const employeeCreate = ({ name, phone, shift }) => {
       const { currentUser } = firebase.auth();
    
     return (dispatch) => {
       firebase.database().ref(`/users/${currentUser.uid}/employees`)
        .push({ name, phone, shift })
        .then(() => {
           dispatch({ type: EMPLOYEE_CREATE });
           Actions.main({ type: 'reset' });
        });
      };
    };