Как настроить набор инструментов Redux для RTK-запроса

Инструментарий Redux для запросов или сокращенно RTK query — это величайшее изобретение человечества со времен колеса. Он упрощает выполнение асинхронных задач, таких как получение данных из API. В этой статье я покажу вам, как настроить ваш проект на использование RTK-запросов.

  1. Запустите create-react-app

  2. Установите следующие зависимости.


npm install react-redux @reduxjs/toolkit 

Войдите в полноэкранный режим Выйдите из полноэкранного режима

Внимание
обратите внимание, что все файлы для одной функции должны находиться в одной папке, то есть все, что касается постов, должно находиться в папке posts.

настройка магазина

// src/app/store.js

import { configureStore } from "@reduxjs/toolkit"
import { apiSlice } from "./api/apiSlice";


export const store = configureStore({
  reducer: {
   // reducer for slice goes here
  },
})

export default store
Войти в полноэкранный режим Выйти из полноэкранного режима

Предоставить магазин приложению

оберните все приложение магазином.


// index.js
import App from './App';
import { store } from './app/store'
import { Provider } from 'react-redux'

const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(
  <React.StrictMode>
    <Provider store={store}>
      <App />
    </Provider>
  </React.StrictMode>
);

Войти в полноэкранный режим Выйти из полноэкранного режима

создать фрагмент API


// src/app/api/apiSlice.js

import { createApi, fetchBaseQuery } from "@reduxjs/toolkit/query/react";

const baseQuery = fetchBaseQuery({
    baseUrl: "https://ifeanyi-stock-backend.herokuapp.com/"
})

export const apiSlice = createApi({
    baseQuery: baseQuery,
    endpoints: builder => ({})
})

Войдите в полноэкранный режим Выйдите из полноэкранного режима

Добавьте редуктор API Slice в магазин.

apiSlice.reducerPath помогает нам динамически присваивать имя редуктору среза API.

import { configureStore } from "@reduxjs/toolkit"
import { apiSlice } from "./api/apiSlice";


export const store = configureStore({
    reducer: {
        [apiSlice.reducerPath]: apiSlice.reducer
    },
    middleware: getDefaultMiddleware => getDefaultMiddleware().concat(apiSlice.middleware),
    devTools: true
})

Вход в полноэкранный режим Выход из полноэкранного режима

Спасибо, пожалуйста, следуйте за мной

twitter
github
linkedin

Оцените статью
devanswers.ru
Добавить комментарий