Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Отримання Даних за Допомогою createAsyncThunk | Обробка Асинхронної Логіки з Redux Toolkit
Керування Станом із Redux Toolkit у React

bookОтримання Даних за Допомогою createAsyncThunk

Свайпніть щоб показати меню

Що ви створюєте

Отримання даних з API за допомогою Redux Toolkit.

Створення асинхронної дії

Redux Toolkit надає createAsyncThunk для обробки асинхронної логіки.

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

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

Підключення до зрізу (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 дозволяє структуровано обробляти асинхронну логіку. Автоматично відстежує стани завантаження, успіху та помилки.

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 5. Розділ 2

Запитати АІ

expand

Запитати АІ

ChatGPT

Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат

Секція 5. Розділ 2
some-alt