Asynkronisen 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.
Kiitos palautteestasi!
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme
Asynkronisen Datan Käsittely Sovelluksessa
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.
Kiitos palautteestasi!