如何解决动作未调度,反应本机,状态良好
我无法向减速器发送动作。 状态就好了。不知道我哪里出问题了。 对于其他用户减速器,调度工作正常。我的项目有嵌套的抽屉导航>选项卡导航>堆栈导航,当前页面是第三个堆栈屏幕。不知道这是问题还是什么。 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
SubscriptionQuantity组件
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。这就是为什么它采用默认路由。更改了打字错误,现在可以正常使用了!!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。