我想用我的 Redux 存储处理一个普通的 bool 值。但是这个值在每个调度事件中都会导致 undefined 。你们有人知道为什么吗?
我有以下设置:
reducer.js
const initialState = {
canSwipe: true
};
export default function rootReducer(state = initialState, action) {
switch (action.type) {
case CAN_SWIPE: {
console.log(action.payload.canSwipe) // This logs true or false - works!
return action.payload.canSwipe
}
default:
return state;
}
}
Action .js
export const setSwipeState = canSwipe => ({ type: CAN_SWIPE, payload: { canSwipe } });
调度组件
function MapOverlay({setSwipeState}) {
const zoom = 5;
return (
<Map
onMovestart={() => setSwipeState(false)}
onMoveend={() => setSwipeState(true)}
>
{...}
</Map>
)
}
export default connect(null, {setSwipeState})(MapOverlay);
最佳答案
reducer 应该返回必须符合初始状态的数据:
const initialState = {
canSwipe: true
};
因此您需要更改您的 reducer 以遵守此结构:
switch (action.type) {
case CAN_SWIPE: {
console.log(action.payload.canSwipe) // This logs true or false - works!
return {canSwipe: action.payload.canSwipe}
}
关于javascript - React Redux - bool 值未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58579931/