Отримання Даних за Допомогою 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 дозволяє структуровано обробляти асинхронну логіку. Автоматично відстежує стани завантаження, успіху та помилки.
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат
Отримання Даних за Допомогою 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 дозволяє структуровано обробляти асинхронну логіку. Автоматично відстежує стани завантаження, успіху та помилки.
Дякуємо за ваш відгук!