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

bookHåndtering af asynkrone data i appen

Stryg for at vise menuen

Nu tilføjes data, der kommer udefra appen. I stedet for at starte med en tom liste, indlæses opgaver fra et API.

Oprettelse af asynkron handling

Opdater din slice og tilføj createAsyncThunk:

import { createAsyncThunk, createSlice } from '@reduxjs/toolkit';

export const fetchTasks = createAsyncThunk('tasks/fetchTasks', async () => {
  const response = await fetch('https://jsonplaceholder.typicode.com/todos?_limit=5');

  if (!response.ok) {
    throw new Error('Failed to fetch tasks');
  }

  return response.json();
});

Håndtering af asynkrone tilstande

Opdater din slice for at spore indlæsning og fejl:

const initialState = {
  items: [],
  status: 'idle',
  error: null
};

Tilføj extraReducers:

extraReducers: (builder) => {
  builder
    .addCase(fetchTasks.pending, (state) => {
      state.status = 'loading';
    })
    .addCase(fetchTasks.fulfilled, (state, action) => {
      state.status = 'succeeded';
      state.items = action.payload;
    })
    .addCase(fetchTasks.rejected, (state, action) => {
      state.status = 'failed';
      state.error = action.error.message;
    });
}

Udløsning af hentning

Dispatch handlingen, når komponenten indlæses:

import { useEffect } from 'react';
import { useDispatch } from 'react-redux';
import { fetchTasks } from '../features/tasks/tasksSlice';

function TaskList() {
  const dispatch = useDispatch();

  useEffect(() => {
    dispatch(fetchTasks());
  }, [dispatch]);
}

Asynkron logik tilføjet til applikationen. Opgaver hentes nu fra et API, og tilstanden sporer indlæsning, succes og fejl.

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 7. Kapitel 4

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 4
some-alt