首页 > 解决方案 > redux如何使用状态

问题描述

我在以下反应 redux 代码上遇到错误:

这个 redux 索引

const AllReducers = combineReducers({
    foolow: follow_Reducer,
    vacations: vacations_Reducer,
    register: register_Reducer,
    follows: follows_Reducer,
    isLogged: logged_Reducer,
});

这个 redux 减速器

const follows_Reducer = (state = false, action) => {
    switch (action.type) {
        case 'FOLLOW':
            return !state

        case 'UNFOLLOW':
            return state

        default:
            return state;
    }
}
export default follows_Reducer;

这反应

export default function Vacation() {
    const vacations = allvacations();
    const classes = useStyles();
    const [value, setValue] = React.useState('recents');
    const foolow = useSelector(state => state.foolow);
    const dispatch = useDispatch()

    <BottomNavigation 
        value={value} 
        onClick={() => dispatch((foolow))} 
        onChange={handleChange} className={classes.root} 
    >
        <BottomNavigationAction 
            label="Follow" 
            value="Follow" 
            icon={<FavoriteIcon />} 
    />
    </BottomNavigation>
}

这给我带来了一个错误

错误:操作必须是普通对象。使用自定义中间件进行异步操作。

标签: javascriptreactjsreduxreact-redux

解决方案


您以错误的方式调度,调度应该始终是一个对象。试试这个代码。

<BottomNavigation 
  value={value} 
  onClick={() => dispatch({ type: 'FOOLOW', payload: foolow })} 
  onChange={handleChange} 
  className={classes.root} 
/>

之后,您可能还需要对减速器进行一些更改。


推荐阅读