Я пытаюсь интегрировать 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));