我的Redux
状态具有以下结构:
const state = {
transactions: {
1: {
TransactionId: 1, Status: "Pending", Type: "Withdrawal", ClientName: "Paul Carter", Amount: "$28.43"
},
2: {
TransactionId: 2, Status: "Completed", Type: "Refill", ClientName: "Caldwell Reid", Amount: "$45.16"
},
...
}
鉴于我有transactions
,从id
更新/删除对象的正确方法是什么?
[这是我尝试更新Status
中的reducer
属性的方法,但是它似乎不起作用,我的状态保持不变。
const transactionsReducer = (state, action) => {
case CHANGE_TRANSACTION_STATUS:
return {
[state.transactions[action.id].Status]: action.status
}
}
您在这里,它应该看起来像这样:
如果直接在transactions
中获得state
对象:
return {
...state,
[action.id]: {
...state[action.id] ,
Status : action.status
}
}
您可以这样做:
const transactionsReducer = (state, action) => {
switch (action.type) {
case CHANGE_TRANSACTION_STATUS:
return {
...state,
transactions: {
...state.transactions,
[action.id]: {
...state.transactions[action.id],
status: action.status
}
}
}
return {
[state.transactions[action.id].Status]: action.status,
}
}
}