2016-08-05 2 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

는 의미가 있습니다. 그러나 컴포넌트 밖에서 redux 액션 제작자를 호출하는 것은 불가능합니까 (아니면 나쁜 습관입니까)? 내 응용 프로그램에서 아무것도 렌더링하기 전에이 호출해야합니다. – user3162553

+0

상황에 따라 다릅니다. 'store.dispatch (actionCreator())'를 사용하면됩니다. – 1ven

+0

좋아, 좋아. 고맙습니다. 그러나 가게를 내보내는 것은 나쁜 습관입니까? – user3162553