[英]How to delete a specific item from react redux store?
我正在嘗試從 React Redux 商店中刪除特定項目。 我的 initialState 是一個多維數組:
{
"flex": [
{
"id": "01-00-1234567890",
"positions": [
{
"id": 0,
"bezeichnung": "24V LED Stripe IP00, 380lm/m, 2700K, 4,8W/m - 5000 mm (24 W)",
"artikelnummer": "B15201027",
"zusatz": "5000",
"menge": 1,
"bp_produkt": 63.7,
"bp_gesamt": 63.7
},
{
"id": 1,
"bezeichnung": "24V LED Driver 25W",
"artikelnummer": "370202500",
"zusatz": "0",
"menge": 1,
"bp_produkt": 68.82,
"bp_gesamt": 68.82
}
]
},
{
"id": "01-01-1234567890",
"positions": [
{
"id": 0,
"bezeichnung": "24V LED Stripe IP00, 380lm/m, 2700K, 4,8W/m - 5000 mm (24 W)",
"artikelnummer": "B15201027",
"zusatz": "5000",
"menge": 1,
"bp_produkt": 90.7,
"bp_gesamt": 90.7
},
{
"id": 1,
"bezeichnung": "24V LED Driver 25W",
"artikelnummer": "370202500",
"zusatz": "0",
"menge": 1,
"bp_produkt": 101.82,
"bp_gesamt": 102.82
}
]
}
]
}
現在,我想從商店的 ID 為“01-00-1234567890”的父數組中刪除 id:1 的項目。
我當前的減速器 function 如下所示:
deletePosition(state, action) {
const itemId = action.payload.konfigId // 01-00-1234567890
const positionId = action.payload.row.position // 1
console.log(current(state))
state.data.flex = state.data.flex
.filter(items => {
return items.id == itemId
})
.map(pos => pos.positions.filter(p => p.id == positionId))
}
}
我是 Redux 和 React 的新手,需要幫助
非常感謝
const state = { data: { "flex": [{ "id": "01-00-1234567890", "positions": [{ "id": 0, "bezeichnung": "24V LED Stripe IP00, 380lm/m, 2700K, 4,8W/m - 5000 mm (24 W)", "artikelnummer": "B15201027", "zusatz": "5000", "menge": 1, "bp_produkt": 63.7, "bp_gesamt": 63.7 }, { "id": 1, "bezeichnung": "24V LED Driver 25W", "artikelnummer": "370202500", "zusatz": "0", "menge": 1, "bp_produkt": 68.82, "bp_gesamt": 68.82 } ] }, { "id": "01-01-1234567890", "positions": [{ "id": 0, "bezeichnung": "24V LED Stripe IP00, 380lm/m, 2700K, 4,8W/m - 5000 mm (24 W)", "artikelnummer": "B15201027", "zusatz": "5000", "menge": 1, "bp_produkt": 90.7, "bp_gesamt": 90.7 }, { "id": 1, "bezeichnung": "24V LED Driver 25W", "artikelnummer": "370202500", "zusatz": "0", "menge": 1, "bp_produkt": 101.82, "bp_gesamt": 102.82 } ] } ] } }; const itemId = '01-00-1234567890'; const positionId = 1; const nextState = state.data.flex.map(v => { if(v.id === itemId) { return {...v, positions: v.positions.filter(pos => pos.id;== positionId) } } return v; }). console:log('nextState, '; nextState);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.