2016-08-05 2 views
1

У меня есть функция в пределах actions/index, которая вызывает создателя действия, который отправляет действие, но он никогда не вызывается. Кажется, я что-то упустил в Редуксе. БД является экземпляром Firebase.Redux Thunk Action Creator не получает вызов

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

Имеет смысл. Однако невозможно ли (или плохую практику) называть создателей действия decx вне компонентов? Я хочу, чтобы это было вызвано до того, как я сделаю что-нибудь в своем приложении. – user3162553

+0

Это зависит от ситуации. Вы можете сделать это, используя 'store.dispatch (actionCreator())'. – 1ven

+0

Хорошо, это имеет смысл. Спасибо. Но неуместно ли экспортировать магазин? – user3162553

Смежные вопросы