Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Asynkronisen Datan Käsittely Sovelluksessa | Todellisen Sovelluksen Rakentaminen Redux Toolkitilla
Tilanhallinta Redux Toolkitilla Reactissa

bookAsynkronisen Datan Käsittely Sovelluksessa

Pyyhkäise näyttääksesi valikon

Nyt lisäät sovelluksen ulkopuolelta tulevaa dataa. Tyhjän listan sijaan lataat tehtävät API-rajapinnasta.

Asynkronisen toiminnon luominen

Päivitä slice ja lisää 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();
});

Asynkronisten tilojen käsittely

Päivitä slice seuraamaan lataus- ja virhetiloja:

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

Lisää 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;
    });
}

Datan hakemisen käynnistäminen

Toiminnon lähettäminen komponentin latautuessa:

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

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

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

Sovellukseen on lisätty asynkroninen logiikka. Tehtävät ladataan nyt API-rajapinnasta, ja tila seuraa latauksen, onnistumisen ja virheen tiloja.

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 7. Luku 4

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

Osio 7. Luku 4
some-alt