reactjs - 我不知道如何在 react redux todo app 中使用 visibilityFilters
问题描述
我有一个 todo 应用程序,它可以执行所有 4 个 crud 操作,但我无法根据它们的当前状态过滤它们,这是 codesandbox 上的应用程序。
import { SET_VISIBILITY_FILTER } from "../actionTypes";
const initialState = {
filters: ["SHOW_ALL"]
};
const visibilityFilter = (state = initialState, { type, payload }) => {
switch (type) {
case SET_VISIBILITY_FILTER:
return { payload };
default:
return state;
}
};
export default visibilityFilter;
任何解释将不胜感激。
我还检查了其他 react redux todo app github repos,但它们中的大多数都是旧的,而且看起来他们不是以最好的方式编写的,所以我正在努力寻找更好的方式(到目前为止失败了)
解决方案
几个问题
filters
是一个处于初始状态的数组,但您在操作之后发送单个值,并且在使用它进行过滤时也使用单个值。你期望
payload
在你的减速器中,但你发送的数据并没有包装东西payload
dispatch({ type: SET_VISIBILITY_FILTER, filter });
继续上述内容,您应该使用已定义的操作
setFilter
来设置过滤器,该过滤器将数据正确包装在payload
属性中。
解决这 3 个问题,您会得到https://codesandbox.io/s/problems-with-redux-forked-hv36h,它按预期工作。
推荐阅读
- php - 如何使用mysql和php实现基于成本的单表排列组合?
- jboss - Business Central 未显示部署单元
- java - 如何设置 Recyclerview 适配器 onCallBack
- amazon-web-services - AWS Personalize:如何处理没有足够交互数据的庞大目录
- java - JavaFX 找不到符号符号:编译时的类 PixelBuffer
- php - 无法通过 Laravel 中的访问器订购
- javascript - 带有条件的提交按钮
- keras - Keras 模型在一个 epoch 后抛出值错误
- stata - GARCH(1,1) 回归模型在均值方程 stata 中具有虚拟变量
- java - 我想在不改变顺序的情况下添加数组