2016-08-05 6 views
1

actions/indexの中に、アクションをディスパッチするアクションクリエータを呼び出す関数がありますが、呼び出されることはありません。私はReduxで何かが足りないと思う。 DBはFirebaseのインスタンスです。Redux Thunkアクションクリエータが呼び出されない

export function handleInitialVisit() { 
    ... 
    DB.child('profiles') 
    .child(id) 
    .set(data) 
    .then(res => handleVisit()); 
} 

function handleVisit() { 
    console.log('called') // called 
    return (dispatch, getState) => { 
    console.log('called'); // never called 
    ... 
    dispatch({type: SET_DB_REF, payload: visitReferencePath}); 
    } 
} 

私の唯一の推測では、ので、私はそれを派遣し、getStateをのそれらの性質を持っていない接続またはストアでこれを呼び出していないよということです。問題は、私はこれをコンポーネントから呼び出す必要はないということです。私は、コンポーネントがレンダリングされる前にこれが起こることを望みます。インタラクションが起こり、コンポーネントがレンダリングされる前に、ユーザーを把握しようとしています。

答えて

1

あなたはアクションをディスパッチするdispatch機能を使用する必要があります。

export function handleInitialVisit() { 
    ... 
    DB.child('profiles') 
    .child(id) 
    .set(data) 
    .then(res => dispatch(handleVisit())); 
} 
+0

は理にかなっています。しかし、コンポーネント外のレビュックスアクションクリエイターを呼び出すことはできません(または悪い習慣)?私は私のアプリケーションで何かをレンダリングする前に、これを呼び出すようにします。 – user3162553

+0

状況によって異なります。 'store.dispatch(actionCreator())'を使ってこれを行うことができます。 – 1ven

+0

大丈夫、それは理にかなっています。ありがとうございました。しかし、店舗を輸出することは悪い習慣ですか? – user3162553

関連する問題