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

bookHåndtering av asynkrone data i appen

Sveip for å vise menyen

Nå legger du til data som kommer fra eksterne kilder. I stedet for å starte med en tom liste, vil du laste inn oppgaver fra et API.

Opprette asynkrone handlinger

Oppdater slicen din og legg til 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 av asynkrone tilstander

Oppdater slicen din for å spore lasting og feil:

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

Legg til 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;
    });
}

Utløsing av henting

Send handlingen når komponenten lastes inn:

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 logikk er lagt til i applikasjonen. Oppgaver lastes nå fra et API, og tilstanden sporer lasting, suksess og feil.

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 7. Kapittel 4

Spør AI

expand

Spør AI

ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

Seksjon 7. Kapittel 4
some-alt