Сервис быстрых ответов от искусственного интеллекта
Вопрос пользователя:
Ответ нейросети:
import { createSlice, createAsyncThunk, createSelector } from '@reduxjs/toolkit'; import { TIngredient } from '@utils-types'; import { getIngredientsApi } from '../../utils/burger-api';
type TIngredientState = { ingredients: TIngredient[]; loading: boolean; error?: string | null; };
const initialState: TIngredientState = { ingredients: [], loading: false, error: '', };
export const fetchIngredients = createAsyncThunk<TIngredient[]>( 'ingredients/fetchIngredients', async () => { const response = await getIngredientsApi(); return response; } );
const ingredientSlice = createSlice({ name: 'burgerIngredients', initialState, reducers: {},
extraReducers: (builder) => { builder .addCase(fetchIngredients.pending, (state) => { state.loading = true; state.error = null; }) .addCase(fetchIngredients.fulfilled, (state, action) => { state.loading = false; state.ingredients = action.payload; }) .addCase(fetchIngredients.rejected, (state, action) => { state.loading = false; state.error = action.error.message || 'Failed to fetch ingredients'; }); }, });
export const ingredientSliceReducer = ingredientSlice.reducer; export const getIngredients = createSelector( (state: { burgerIngredients: TIngredientState }) => state.burgerIngredients.ingredients, (ingredients) => ingredients );
Напишите нам, если в вопросе есть ваши персональные данные (yasnoponyatno24@yandex.ru)
Обратите внимание: ответы, предоставляемые искусственным интеллектом, могут не всегда быть точными. Не рассчитывайте на них в критически важных областях, таких как медицина, юриспруденция, финансы или в вопросах, связанных с безопасностью. Для важных решений всегда обращайтесь к квалифицированным специалистам. Администрация сайта не несет ответственности за контент, сгенерированный автоматически.