Přidání dalšího slicu do Reduxu

Na předchozích lekcích jsme intenzivně pracovali na slicu products pro produkty. V reálné Redux aplikaci může být ve stavu mnoho sliceů pro různé účely. Proto v této lekci přidáme do state další slice pro prodejce, kteří ve skutečnosti budou přidávat produkty v naší aplikaci.

Otevřeme naši aplikaci s produkty a první, co uděláme, je, že ve složce parts vytvoříme další složku sellers, zde budeme umisťovat veškerý kód a komponenty, týkající se prodejců.

Nyní, stejně jako v případě produktů, vytvořme slice pro prodejce. Pro začátek ve složce sellers vytvoříme soubor sellersSlice.js a importujeme do něj createSlice:

parts/sellers/sellersSlice.jsimport { createSlice } from '@reduxjs/toolkit'

Pokračujeme standardními kroky. Jako počáteční hodnotu pro slice vytvoříme čtyři prodejce. Pro jednoduchost budou mít dvě pole - id a name:

sellers/sellersSlice.jsconst initialState = [
  { id: '0', name: 'Super Power' },
  { id: '1', name: 'Miracle Life' },
  { id: '2', name: 'Dolls&Toys' },
  { id: '3', name: 'Granny' },
]

Níže pomocí createSlice vytvoříme slice sellers, předáme mu počáteční hodnotu. Protože nebudeme přidávat prodejce, ani aktualizovat jejich data v budoucnu, nechme pole s reducery prozatím prázdné:

sellers/sellersSlice.jsconst sellersSlice = createSlice({
  name: 'sellers',
  initialState,
  reducers: {},
})

Na konci souboru nezapomeňme na export výsledného reduceru:

sellers/sellersSlice.jsexport default sellersSlice.reducer

Nyní potřebujeme otevřít soubor store.js ve složce app a importovat získaný reducer:

app/store.jsimport sellersReducer from '../parts/sellers/sellersSlice'

A poté jej přiřadit v configureStore jako reducer pro sellers:

app/store.jsexport default configureStore({
  reducer: {
    products: productsReducer,
    sellers: sellersReducer,
  },
})
Задание 1

Otevřete vaši aplikaci se studenty. Vytvořte další složku teachers, zde budete mít soubory s kódem, týkající se učitelů. Vytvořte v ní soubor teachersSlice.js. S využitím materiálů lekce vytvořte v něm slice teachers pomocí createSlice.

Задание 2

Nechť každý objekt s daty učitele má tři vlastnosti: id, name (které bude obsahovat příjmení a iniciály, například 'Petrov A.V.') a předmět (libovolný, který vymyslíte - fyzika, matematika, biologie atd.). Vytvořte 3 takové objekty s učiteli jako počáteční hodnotu pro slice.

Задание 3

Importujte získaný reducer teachersReducer do store.js a přiřaďte jej jako reducer pro teachers, jak je ukázáno v lekci.