动作不分派本机反应,状态正常

action not dispatching react native, state is coming out fine

我无法向 reducer 发送操作。 状态很好。不知道我哪里出错了。 对于其他用户减速器,调度工作得很好。我的项目有嵌套的抽屉导航> 选项卡导航> 堆栈导航,当前页面是第三个堆栈屏幕。不知道这是问题还是什么。 Store.js

import { combineReducers, createStore } from '@reduxjs/toolkit';
import cartReducer from './cartSlice';
import userReducer from './userSlice';

const rootReducer = combineReducers({
    userReducer: userReducer,
    cartReducer: cartReducer,
})

const configureStore = () => createStore(rootReducer)

export default configureStore

cartSlice.js

const initialState = {
    cart: [{ key: 1, data: { freq: 'Daily', duration: 30 } }]
}

const cartReducer = (state = initialState, action) => {
    switch (action.types) {
        case "ADD_TO_CART":
            console.log(action)
            return {
                ...state,
                cart: [...state.cart, { key: 2, data: action.data }]
            }

        case "REMOVE_FROM_CART":
            const idx = state.cart.map((cartItem) => (
                cartItem.key === action.id
            ))

            const tempNewCart = [...state.cart]
            if (idx >= 0) {
                tempNewCart.splice(idx, 1)
            }
            return { ...state, cart: tempNewCart }

        case "CLEAR_CART":
            return {
                ...state,
                cart: []
            }
        default:
            return state
    }
}

export default cartReducer

订阅数量组件

const mapStateToProps = (state) => {
    console.log(state)
    return {
        cart: state.cartReducer.cart
    }
}

const mapDispatchToProps = (dispatch) => {
    // console.log(dispatch)
    return {
        addtoCartStore: (freq, duration) => dispatch({
            type: 'ADD_TO_CART',
            data: {
                freq: freq,
                duration: duration
            }
        })
    }
}

export default connect(mapStateToProps, mapDispatchToProps)(SubscriptionQuantity)

调度函数调用

const addtoCart = () => {
addtoCartStore('Alternate', 30)
navigation.navigate("CartScreen")
}

switch 语句有问题!!!! 它应该是 switch(action.type) 而不是 action.types。这就是它进入默认路线的原因。更改了错字,现在可以正常使用了。!