如何从reactjs中的redux状态中筛选出项
我从后端获取数据,从后端获取产品列表,并将其分配到redux reducer中的如何从reactjs中的redux状态中筛选出项,reactjs,redux,react-redux,Reactjs,Redux,React Redux,我从后端获取数据,从后端获取产品列表,并将其分配到redux reducer中的cartList状态。在这里,我试图过滤掉包含字段item.teamWith==0和&item.priceType===“TEAM”的项,并将过滤后的值分配给waitingList。但问题是,我尝试了好几次,但没有看到分配给它的任何值。这就是我的代码的样子 代码 此处waitingItem在我所在的州甚至不可用。我不知道为什么。任何帮助都会很好。来自您的代码 state.cartList.filter(item=>
cartList
状态。在这里,我试图过滤掉包含字段item.teamWith==0和&item.priceType===“TEAM”
的项,并将过滤后的值分配给waitingList。但问题是,我尝试了好几次,但没有看到分配给它的任何值。这就是我的代码的样子
代码
此处waitingItem
在我所在的州甚至不可用。我不知道为什么。任何帮助都会很好。来自您的代码
state.cartList.filter(item=>item.teamWith==0&&item.priceType==TEAM)
和image,如果存在cartList
属性,则不存在您正在通过-teamWith
和priceType
进行筛选的属性,因此您需要更改过滤器
功能或逻辑
可能,当
waitingItem
为空数组、未定义或类似此Redux的内容时,不会将其添加到状态…看起来您正在根据API响应返回的cartList
分配waitingItem
,并相应地对其进行过滤。因此,您需要使用实际负载,而不是使用尚未更新的现有状态来设置waitingItem,如下所示:
case actionTypes.GET_CART_SUCCESS:
const cartList= action.payload._embedded.cartResourceList;
const waitingItem = cartList.filter(item => item.teamWith === 0 && item.priceType === "TEAM");
return {
...state,
cartList,
page: action.payload.page,
waitingItem:waitingItem,
fetched: true,
isFetching: false,
};
case actionTypes.GET_CART_SUCCESS:
const cartList= action.payload._embedded.cartResourceList;
const waitingItem = cartList.filter(item => item.teamWith === 0 && item.priceType === "TEAM");
return {
...state,
cartList,
page: action.payload.page,
waitingItem:waitingItem,
fetched: true,
isFetching: false,
};