CreateAsyncThunkによるデータ取得
メニューを表示するにはスワイプしてください
作成する内容
Redux Toolkit を使用して API からデータを取得。
非同期アクションの作成
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();
}
);
スライスへの接続
スライス内で非同期アクションを処理。
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
AIに質問する
AIに質問する
何でも質問するか、提案された質問の1つを試してチャットを始めてください
セクション 5. 章 2