Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/react-native/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
React native 动作不是本地的,状态很好_React Native_Redux_State_Store_Dispatch - Fatal编程技术网

React native 动作不是本地的,状态很好

React native 动作不是本地的,状态很好,react-native,redux,state,store,dispatch,React Native,Redux,State,Store,Dispatch,我无法向减速机发送操作。 这个州的情况很好。我不知道我哪里出错了。 对于其他用户减速器,分派工作正常。我的项目有嵌套的抽屉导航>选项卡导航>堆栈导航,当前页面是第三个堆栈屏幕。不确定这是问题还是什么。 Store.js cartSlice.js const initialState = { cart: [{ key: 1, data: { freq: 'Daily', duration: 30 } }] } const cartReducer = (state = initialSta

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

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语句!!!! 它应该是开关(action.type)而不是action.type。这就是为什么它会走默认路线。更改了排版,现在可以正常工作了

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