⊗jsrxPmWFRAA 17 of 57 menu

რედიუსერი და action Redux-ში

წინა გაკვეთილზე ჩვენ დავასრულეთ პროდუქტის დამატების ფორმა და გამოვიტანეთ იგი მთავარ გვერდზე. მაგრამ ჯერჯერობით დამატებული მონაცემები არ ინახება, სხვა სიტყვებით რომ ვთქვათ, ახალი პროდუქტი არ ემატება store-ში არსებულებს. მოდით, ამას გავასწორებთ.

დასაწყისისთვის, ჩვენს პროდუქტების აპლიკაციაში გავხსნით ფაილს productsSlice.jsx და დავწერთ createSlice-ისთვის reducer თვისებაში ფუნქციას productAdded, რომელიც დაკავდება პროდუქტის store-ში დამატებით, მასზე გადაცემული მიმდინარე სტეიტის და ექშენის გათვალისწინებით. აღსანიშნავია, რომ აქ ჩვენთან გადაეცემა არა მთელი state, არამედ მხოლოდ ის ნაწილი, რომელიც პასუხისმგებელია პროდუქტებზე (სლაისს products მხოლოდ ეს ნაწილი იცის). ახალი პროდუქტის ობიექტი იქნება action ობიექტის payload თვისებაში, რომელიც გენერირდება ღილაკის დაჭერის დამმუშავებლის მიერ ფორმაში შენახვისას. შედეგად, რედიუსერი 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, დაწერეთ createSlice-ისთვის reducer ველის მნიშვნელობა, როგორც ეს გაკვეთილზე იყო ნაჩვენები.

დაამატეთ ფაილის studentsSlice.jsx ბოლოს მიღებული action creator ფუნქციის ექსპორტი.

ქართული
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語Қазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
ვებსაიტის მუშაობის, ანალიტიკისა და პერსონალიზაციისთვის ვიყენებთ ქუქი-ფაილებს. მონაცემთა დამუშავება ხდება Კონფიდენციალურობის პოლიტიკის შესაბამისად.
ყველას მიღება პარამეტრები უარყოფა