首页 > 解决方案 > 如何将reducer状态值恢复为initialState默认值

问题描述

我正在尝试使用 useReducer 按类别过滤项目

上下文.jsx

const initialState = {
    categoryName: "all item",
  };

const [state, dispatch] = useReducer(reducer, initialState);

const fetchUrl = async () => {
    const resp = await fetch(url);
    const respData = await resp.json();
    const item = respData.item;
    const category = respData.category;
    const promo = respData.promo;
    dispatch({ type: "CATEGORY_ITEM", payload: category });
  };

我想显示与数据匹配的类别名称。

减速器.jsx

if (action.type === "FILTER_NAME") {
    if (action.payload === "all menu") {
      return { ...state, categoryName: "all menu" };
    //return { ...state, categoryName: state.categoryName};
    } else {
      return { ...state, categoryName: action.payload };
    }
  }

我无法将categoryNameback 设置为 state 值,因为我这样做时它已被更改else

有没有办法让我在减速器中设置默认值?因为如果我使用useState不会setState覆盖state默认值。之前谢谢

标签: reactjsreact-hooks

解决方案


推荐阅读