⊗jsrxPmWFRAA 17 of 57 menu

Редуктор и action во Redux

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

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

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

А што е со action? На самиот почеток на учебникот споменавме дека action - е некој настан, претставен во форма на објект, кој го опишува она што се случило во апликацијата. Зборувавме и за тоа дека може да се користи функција action creator, која ќе ни креира таков објект, на пример вака:

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

Добрата вест е што не треба ништо да правиме, бидејќи ова ќе го направи за нас функцијата createSlice, која ја користиме. Откако напишавме reducer, таа автоматски ќе креира за нас action creator со истото име. Нам само ни останува да го експортираме добиениот action creator за понатамошна употреба во компонентите. Да го направиме ова на крајот од датотеката пред експортот на редукторот, вака:

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

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

Додадете на крајот од датотеката studentsSlice.jsx експорт на добиената функција action creator.

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