Redux Toolkit Add, Delete Task - 2025
// 1. Setup Redux Toolkit
// store.js
import { configureStore } from '@reduxjs/toolkit';
import taskReducer from './taskSlice';
export const store = configureStore({
reducer: {
tasks: taskReducer,
},
});
// 2. Create Slice
// taskSlice.js
import { createSlice } from '@reduxjs/toolkit';
const taskSlice = createSlice({
name: 'tasks',
initialState: [],
reducers: {
addTask: (state, action) => {
state.push({ id: Date.now(), text: action.payload });
},
deleteTask: (state, action) => {
return state.filter(task => task.id !== action.payload);
},
},
});
export const { addTask, deleteTask } = taskSlice.actions;
export default taskSlice.reducer;
// 3. Setup Provider
// index.js
import React from 'react';
import ReactDOM from 'react-dom/client';
import { Provider } from 'react-redux';
import { store } from './store';
import App from './App';
const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(
);
// 4. App.js
import React, { useState } from 'react';
import { useDispatch, useSelector } from 'react-redux';
import { addTask, deleteTask } from './taskSlice';
function App() {
const [input, setInput] = useState('');
const dispatch = useDispatch();
const tasks = useSelector((state) => state.tasks);
const handleAdd = () => {
if (input) {
dispatch(addTask(input));
setInput('');
}
};
const handleDelete = (id) => {
dispatch(deleteTask(id));
};
return (
);
}
export default App;