Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Tilføjelse af Funktioner med Redux | Opbygning af en Reel Applikation med Redux Toolkit
Tilstandshåndtering med Redux Toolkit i React

bookTilføjelse af Funktioner med Redux

Stryg for at vise menuen

Opret:

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;

Opret:

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;

Opret:

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;

Redux er forbundet til brugergrænsefladen, og kernefunktionerne er implementeret. Det er nu muligt at oprette, opdatere og slette opgaver, og alle ændringer håndteres gennem storet.

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 7. Kapitel 3

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

Sektion 7. Kapitel 3
some-alt