Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Hentning af Data med createAsyncThunk | Håndtering af Asynkron Logik med Redux Toolkit
Tilstandshåndtering med Redux Toolkit i React

bookHentning af Data med createAsyncThunk

Stryg for at vise menuen

Hvad du bygger

Datahentning fra et API ved hjælp af Redux Toolkit.

Oprettelse af en asynkron handling

Redux Toolkit tilbyder createAsyncThunk til håndtering af asynkron logik.

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

export const fetchPosts = createAsyncThunk(
  'posts/fetchPosts',
  async () => {
    const response = await fetch('https://jsonplaceholder.typicode.com/posts');
    return response.json();
  }
);

Forbindelse til slicen

Håndtering af den asynkrone handling i din slice:

import { createSlice } from '@reduxjs/toolkit';
import { fetchPosts } from './postsThunk';

const postsSlice = createSlice({
  name: 'posts',
  initialState: {
    items: [],
    status: 'idle',
    error: null
  },
  reducers: {},
  extraReducers: (builder) => {
    builder
      .addCase(fetchPosts.pending, (state) => {
        state.status = 'loading';
      })
      .addCase(fetchPosts.fulfilled, (state, action) => {
        state.status = 'succeeded';
        state.items = action.payload;
      })
      .addCase(fetchPosts.rejected, (state, action) => {
        state.status = 'failed';
        state.error = action.error.message;
      });
  }
});

export default postsSlice.reducer;

createAsyncThunk gør det muligt at håndtere asynkron logik på en struktureret måde. Automatisk sporing af loading-, succes- og fejltilstande.

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 5. Kapitel 2

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 5. Kapitel 2
some-alt