Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Adding Features with Redux | Building a Real Application with Redux Toolkit
Керування станом з Redux Toolkit у React

bookAdding Features with Redux

Свайпніть щоб показати меню

Create:

src/components/TaskForm.jsx
import { useState } from 'react';
import { useDispatch } from 'react-redux';
import { addTask } from '../features/tasks/tasksSlice';

function TaskForm() {
  const [title, setTitle] = useState('');
  const dispatch = useDispatch();

  function handleSubmit(event) {
    event.preventDefault();

    if (!title.trim()) {
      return;
    }

    dispatch(
      addTask({
        id: Date.now(),
        title,
        completed: false
      })
    );

    setTitle('');
  }

  return (
    <form onSubmit={handleSubmit}>
      <input
        value={title}
        onChange={(event) => setTitle(event.target.value)}
        placeholder="Enter task title"
      />
      <button type="submit">Add Task</button>
    </form>
  );
}

export default TaskForm;

Create:

src/components/TaskList.jsx
import { useSelector } from 'react-redux';
import TaskItem from './TaskItem';

function TaskList() {
  const tasks = useSelector((state) => state.tasks.items);

  return (
    <ul>
      {tasks.map((task) => (
        <TaskItem key={task.id} task={task} />
      ))}
    </ul>
  );
}

export default TaskList;

Create:

src/components/TaskItem.jsx
import { useDispatch } from 'react-redux';
import { deleteTask, toggleTask } from '../features/tasks/tasksSlice';

function TaskItem({ task }) {
  const dispatch = useDispatch();

  return (
    <li>
      <span
        style={{
          textDecoration: task.completed ? 'line-through' : 'none'
        }}
      >
        {task.title}
      </span>

      <button onClick={() => dispatch(toggleTask(task.id))}>
        Toggle
      </button>

      <button onClick={() => dispatch(deleteTask(task.id))}>
        Delete
      </button>
    </li>
  );
}

export default TaskItem;

You connected Redux to the UI and implemented core features. You can now create, update, and delete tasks, and all changes go through the store.

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 7. Розділ 3

Запитати АІ

expand

Запитати АІ

ChatGPT

Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат

Секція 7. Розділ 3
some-alt