⊗jsrxPmWFRAA 17 of 57 menu

Редјусер и акција у Redux-у

На прошлом уроку мы закончили форму за додавање производа и приказали је на главној страници. Али за сада додати подаци се не чувају, другим речима нови производ се не додаје постојећим у store-у. Хајде да то исправимо.

За почетак у нашој апликацији са производима отворићемо фајл productsSlice.jsx и написаћемо у својству reducer за createSlice функцију productAdded, која ће се бавити додавањем производа у store на основу прослеђеног јој тренутног state-а и акције. Треба напоменути да нам овде није прослеђен цео state, већ само његов део који одговара за производе (слајс products зна само о њему). Објекат са новим производом биће у својству payload објекта action, који ће бити генерисан обрађивачем при клику на дугме за чување у форми. Као резултат, редуцер productAdded ће изгледати у коду createSlice овако:

const productsSlice = createSlice({ name: 'products', initialState, reducers: { productAdded(state, action) { state.push(action.payload) }, }, })

А шта је са акцијом? На самом почетку уџбеника споменули смо да је акција неки догађај, представљен у виду објекта, који описује оно што се десило у апликацији. Говорили смо и о томе да можемо користити функцију креатор акције која ће нам креирати такав објекат, на пример овако:

const addProduct = newProduct => { return { type: 'products/productAdded', payload: newProduct } }

Добра вест је да нам не треба ништа радити, а то ће за нас урадити функција createSlice, коју користимо. Чим напишемо reducer, она ће аутоматски креирати за нас креатор акције са истим именом. Нама само преостаје да извеземо добијени креатор акције за даљу употребу у компонентама. Урадимо то на крају фајла пре извоза редуцера, овако:

export const { productAdded } = productsSlice.actions export default productsSlice.reducer

Отворите вашу апликацију са студентима, а затим фајл studentsSlice.jsx, допишите вредност поља reducer за createSlice, као приказано на лекцији.

Додајте на крај фајла studentsSlice.jsx извоз добијене функције креатор акције.

Српски
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Користимо колачиће за рад сајта, аналитику и персонализацију. Обрада података се врши у складу са Политиком приватности.
прихвати све подеси одбиј