javascript - React Redux - bool 值未定义

标签 javascript reactjs redux react-redux

我想用我的 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/

相关文章:

javascript - reactjs-toolbox 单选按钮组不改变

reactjs - redux 形式 : How to display form values on another component

reactjs - 如何使用 React Router v6 将 useParams 传递到 React 中的 mapStateToProps?

javascript - 创建自定义 passport-jwt 策略中间件回调

javascript - 在 React 中禁用 Firefox 的右键单击上下文菜单

php - 从 PHP 函数执行 javascript 函数

javascript - 如何使用 React 呈现对象列表

javascript - 将页脚放在底部

javascript - 为什么我们在 React 组件中使用 this.setState() 而不是 super.setState()

reactjs - 何时使用 Redux?