开发者问题收集

无法向州政府发送数据

2021-07-16
57

我一直试图通过观看有关 Redux 的教程,在自己创建的电影应用中添加添加收藏夹的功能,但出于某种原因,状态始终为空。
这是我的操作和 Reducer 的样子

Reducers

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;

actions

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

操作已分派并显示在 redux dev 工具中,但没有任何内容添加到我创建的收藏夹状态。

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

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

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

点击图片后

点击图片后我的状态

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

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

Steve Phan
2021-07-16

您在 Reducer 中使用了 case "ADD_FAVOURITE": 但在实际操作中,类型为 type: "ADD_FAVOURITES",

这可能是原因吗?

Niraj Niroula
2021-07-16
export const favouriteActions = () => {
  return {
    type: "ADD_FAVOURITE",
    favourites: "zz",
  };
};

请检查以上内容是否有效。将“playload”改为“favourites”

Kavitha K T
2021-07-16