import { createSlice } from "@reduxjs/toolkit";
const transactionSlice = createSlice({
name: 'transactions',
initialState: [
{id: 1, text: 'shady', amount: 55},
{id: 2, text: 'shady', amount: 55},
{id: 3, text: 'shady', amount: 55}
],
reducers: {
addTransaction: (state, action) => {
const newTransaction = {
id: Math.floor(Math.random() * 100000),
text: action.payload.text,
amount: +action.payload.amount
}
state.push(newTransaction);
},
deleteTransaction: (state, action) => ({
...state,
transactions: state.transactions.filter(transaction => transaction.id !== action.payload.id)
})
}
})
export const { addTransaction, deleteTransaction } = transactionSlice.actions;
export default transactionSlice.reducer;
我想从存储中删除一个事务及其返回
TypeError: can't access property "filter", state。事务未定义
你得到这个是因为你的状态中没有任何键命名的事务
您可以通过将createSlice
方法中的initialState
值更新为
initialState: {
transactions:[
{id: 1, text: 'shady', amount: 55},
{id: 2, text: 'shady', amount: 55},
{id: 3, text: 'shady', amount: 55}
]
}
片的状态是一个数组—例如,您推送到该状态以添加事务。筛选状态以删除一个:
deleteTransaction: (state, action) =>
state.filter(transaction => transaction.id !== action.payload.id)