Reactjs React redux减速器工作不正常
我有这个减速机:Reactjs React redux减速器工作不正常,reactjs,Reactjs,我有这个减速机: case actionTypes.SET_ACTIVE: const editItem = accounts.map((item)=> item.id !== action.id ? item : {...item,active:!item.active}) console.log(editItem) return { ...state, accounts:
case actionTypes.SET_ACTIVE:
const editItem = accounts.map((item)=> item.id !== action.id ? item : {...item,active:!item.active})
console.log(editItem)
return {
...state,
accounts: editItem
}
default:
return state;
}
假设我在状态数组中有两个项目帐户我只想实现如果一个项目.active为true,我单击第二个项目,则第一个项目.active应更改为false,单击的项目ite.active应更改为true
我试着用过滤器来做这件事,但它不起作用,于是回到地图上
有什么解决方案吗?您需要重新创建items对象,对于与单击的项目不匹配的项目,active设置为
false
case actionTypes.SET_ACTIVE:
const editItem = accounts.map((item)=> item.id !== action.id ? {...item,active: false} : {...item,active: true})
console.log(editItem)
return {
...state,
accounts: editItem
}
default:
return state;
}
PS:如果可能的话,您应该为每个复选框维护一个本地状态,并通过切换功能进行设置,然后在稍后的某个点您想要分派。
我不知道,你是如何设计这个应用程序的,但只是一个额外的建议 为了简化,您可以这样做:
{…item,active:item.id===action.id?true:false}