0

我一直在尝试在通过观看有关 Redux 的教程创建的电影应用程序中添加添加收藏夹的功能,但由于某种原因,状态始终为空。
这就是我的动作和减速器的样子

减速机

const initState = {
  favourites: [],
};

const favouriteReducer = (state = initState, action) => {
  switch (action.type) {
    case "ADD_FAVOURITE":
      return {
        ...state,
        favourites: action.payload.favourites,
      };
    default:
      return { ...state };
  }
};

export default favouriteReducer;

行动

 export const favouriteActions = () => {
  return {
    type: "ADD_FAVOURITE",
    payload: "zz",
  };
};

该操作也被调度并显示在 redux 开发工具中,但没有任何内容添加到我创建的最喜欢的状态中。

我将此 onclick 事件设置为我实际上想要在其上传递我可以从另一个状态访问的电影的 ID 的明星的图像。

const addFav = () => {
    dispatch(favouriteActions(id));
  };
reutrn{
<img src={favNot} onClick={addFav} />
}

我只是在这里发布我的组件文件的主要部分。单击图像后,我还附上了一张显示我当前状态的图像。

点击图片后

点击图片后我的状态

4

3 回答 3

3
 return {
    ...state,
    favourites: action.payload.favourites,
  };

只需要“action.payload”或者如果你想要像数组这样的收藏夹应该改变减速器:favourites : [...state.favourites,action.payload]

于 2021-07-16T13:40:56.023 回答
0
export const favouriteActions = () => {
  return {
    type: "ADD_FAVOURITE",
    favourites: "zz",
  };
};

请检查以上是否有效。而不是“播放负载”更改为“收藏夹”

于 2021-07-16T13:46:08.530 回答
0

case "ADD_FAVOURITE": 在减速器中使用,但实际上类型是 type: "ADD_FAVOURITES",

这可能是原因吗?

于 2021-07-16T13:23:25.067 回答