InitialState установлен, но редуктор не выполняется. Уменьшить не меняет магазин - PullRequest
0 голосов
/ 01 декабря 2019

Я пытаюсь интегрировать redux с моим приложением реагировать на нативный + машинописный текст.

Из определенного компонента отправляю действие:

export const setCurrentOrder = (order: PostOrderRequest) => async (dispatch: Dispatch) => {
    console.log('order in action: ', order);
    dispatch({
            type: MENU_POST_ORDER,
            order: order
    });
}

Эта консоль. журнал не выполняется, поэтому у меня есть ошибка при вызове моего действия?

Вот как я вызываю setCurrentOrder из моего компонента:

handleNext() {
        const {pizza} = this.state;
        const {navigation} = this.props;
        const currentOrder = {
            pizza
        }
        console.log('current order: ', currentOrder);
        setCurrentOrder(currentOrder);
        navigation.navigate('Login');
    }

handleNext () выполняетсявызвал событие onPress кнопки.

Тогда мой редуктор:

const initialState: MenuState = {
    order: {pizza: []}
}

export default function (state = initialState, action: MenuAction) {
    console.log('REDUCER: ', action);
    switch (action.type) {
        case MENU_POST_ORDER:
            return {
                ...state, 
                order: action.order
            };
        default:
            return state;
    }   
}

Кстати, этот console.log внутри функции редуктора НЕ ВЫПОЛНЯЕТСЯ! Я не знаю почему, но похоже, что initialState устанавливается, но функция редуктора никогда не выполняется.

Я выполнил setCurrentOrder из компонента. Затем, после этого, компонент направляет пользователя к другому компоненту. Из этого другого компонента я использую response-redux для получения состояния:

export default withNavigation(connect(
    state => ({
        state: state
    }),
    null
)(LoginScreen));

Но когда я регистрирую this.props.state, он показывает initialState. Я попытался установить this.props.state в состояние реакции компонента и с помощью componentDidUpdate, чтобы проверить, меняются ли реквизиты, и обновляет ли я состояние реакции. Но он всегда показывает мой initialState так:

Почему устанавливается initialState, а функция редуктора не выполняется?

Редактировать:

Этокак я отправляю setCurrentOrder из моего компонента (оболочка withNavigation потому, что я использую реагирующую-навигацию):

export default withNavigation(connect(
    null,
    (dispatch: Dispatch) => ({
        setCurrentOrder: (order: PostOrderRequest) => dispatch<any>(setCurrentOrder(order))
    })
)(MenuScreen));
...