reactjs - 如何将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 };
}
}
我无法将categoryName
back 设置为 state 值,因为我这样做时它已被更改else
。
有没有办法让我在减速器中设置默认值?因为如果我使用useState
不会setState
覆盖state
默认值。之前谢谢
解决方案
推荐阅读
- java - 动态地将 ArrayList 添加到另一个 ArrayList 是踩值
- python - 在带有 selenium 的 python 中,如何轮换 IP 地址?
- jquery - 根据子类或兄弟类获取父元素或上一个元素
- torchscript - 无法让 torch.jit.script 与 pytorch RNN 一起正常工作
- python - Github 创建数据库文件 discord.py
- python - (Tensorflow)TypeError:create_estimator_and_inputs()缺少1个必需的位置参数:'hparams'
- c# - Xamarin.Forms - 多次加载其中的图像时扩展框架
- python - 缩放不规则多维数据框
- c# - 无法为 Sql-to-Linq 查询引用我的实体模型
- javascript - Javascript:我如何获得