fin*_*007 2 javascript reactjs redux
我是JavaScript和Redux的新手。我正在尝试在Redux中的reducer之一中基于id过滤数组,如果我仅将id传递给回调函数,则该数组不起作用,但是如果id包裹在{id}周围,则它可以工作。
//Default store
const defaultState = {
articles: [],
filtercriteria: {}
};
//Reducer
const articlesReducer = (state = defaultState.articles, action) => {
switch (action.type) {
case "ADD":
return [...state, action.article];
case "REMOVE":
//return state.filter(id => id !== action.id); //**DOES NOT WORK**
return state.filter(({id}) => id !== action.id); // **WORKS**
default:
return state;
}
return state;
};
//Action Creator and Action
const remove = id => {
return {
type: "REMOVE",
id
};
};
//Action Dispatch
const addActionObject = store.dispatch(add());
store.dispatch(remove(addActionObject.article.id));
Run Code Online (Sandbox Code Playgroud)
好吧,因为您正在使用解构
解构赋值语法是一个JavaScript表达式,可以将数组中的值或对象中的属性解压缩为不同的变量。
如果不使用解构,则可以使用如下函数:
state.filter((item) => item.id !== action.id);
Run Code Online (Sandbox Code Playgroud)
但是您可以使用解构将现有属性“ id”分配给不同的变量
state.filter(({ id }) => id !== action.id);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
72 次 |
| 最近记录: |