2017-12-08 5 views
1

を作成して押した後に一覧表示するために戻ってナビゲートしていないhereは私のコードボタン

である私は、私が作成したボタンを押すことが、私は移動するわけではないの後に戻っ従業員リストへナビゲートするアクションを追加しました。このcourse

を取っていますバック。私は何が間違っているかも理解できますか?ここで

は、アクションの作成者ファイルです:私は仕事にこれを得た

enter image description here

答えて

1

ルータ

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' }); 
     }); 
    }; 
}; 

これは私が離れてから移動するわけではない画面です。 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' }); 
    }); 
    }; 
}; 
+0

これは機能しました。 Actions.Main()にActions.employeeCreateを変更するだけで作業しました。しかし、私の質問は、なぜですか? LOL本当にこのJaredを見ていただきありがとうございます。あなたは紳士で学者です! –

+0

あなたが行くべきであれば、あなたが反応するためにあなたはあなたにreact-native-router-fluxを伝える必要があるからです。 authとmainの2つのビンがあります。 Actions.main.employeeList()を実行することもできます。メインに送信するのは、デフォルトではemployeeListになります。なぜなら、メインにリストされている最初のシーンだからです。 2.それは、そのビン内の最初のシーンとしてそれを指定する「初期」小道具を持っています。あなたがemployeeListではないメインの別のシーンに移動したいのであれば、Actions.main.whateverYourKeyForThatComponentIs()を指定する必要があります。 –

+0

私はActions.main.employeeList()を試しましたが、アプリケーションはナビゲートしませんが、エラーです。私は働いていると思うのは、ルータが「メイン」シーンを認識してそこに連れて行っていることです。従業員リストが最初のシーンか最初のシーンなので、それが終わりです....... –