如何在 React Redux 中存储唯一项?
How to store unique item in react redux?
我想在我的 redux 篮子中存储唯一值,但我无法存储它。
我实现了从 Whosebug 本身找到的这段代码,但它对我不起作用。我仍然得到存储在 redux 中的重复值。
看到这个:
代码:
export const initialState = {
basket: []
}
const reducer = (state, action) => {
switch(action.type){
case 'Add_To_New':
if (state.basket.indexOf(action.item) === -1) {
return {
...state,
basket:[...state.basket, action.item],
};
}
return state;
default:
return state;
}
}
export default reducer;
在购物篮中,如果这个用户已经存在,我只想存储一次。如果我再次添加用户,它不应该存储它,而是 return 以前存储的值。
没有看到您的更多代码,您正在执行的 indexOf
可能与现有对象不匹配,可能是因为您要匹配的对象中包含一些不同类型的数据.
假设你的 item
有某种 id 字段,我将使用 id
作为这个例子,你也可以做类似
export const initialState = {
basket: []
}
const reducer = (state, action) => {
switch(action.type){
case 'Add_To_New':
if (!state.basket.map(item => item.id).includes(action.item.id) {
return {
...state,
basket:[...state.basket, action.item],
};
}
return state;
default:
return state;
}
}
export default reducer;
我想在我的 redux 篮子中存储唯一值,但我无法存储它。 我实现了从 Whosebug 本身找到的这段代码,但它对我不起作用。我仍然得到存储在 redux 中的重复值。
看到这个:
代码:
export const initialState = {
basket: []
}
const reducer = (state, action) => {
switch(action.type){
case 'Add_To_New':
if (state.basket.indexOf(action.item) === -1) {
return {
...state,
basket:[...state.basket, action.item],
};
}
return state;
default:
return state;
}
}
export default reducer;
在购物篮中,如果这个用户已经存在,我只想存储一次。如果我再次添加用户,它不应该存储它,而是 return 以前存储的值。
没有看到您的更多代码,您正在执行的 indexOf
可能与现有对象不匹配,可能是因为您要匹配的对象中包含一些不同类型的数据.
假设你的 item
有某种 id 字段,我将使用 id
作为这个例子,你也可以做类似
export const initialState = {
basket: []
}
const reducer = (state, action) => {
switch(action.type){
case 'Add_To_New':
if (!state.basket.map(item => item.id).includes(action.item.id) {
return {
...state,
basket:[...state.basket, action.item],
};
}
return state;
default:
return state;
}
}
export default reducer;