⊗jsrxPmSDSSC 35 of 57 menu

Промяна на структурата на състоянието в Redux

Първият етап, който ще реализираме за взаимодействието на нашето Redux приложение с някакъв външен сървър - това е получаването на данни, които се съхраняват на него при стартиране на приложението. Но първо нека внесем в нашето приложение някои промени.

Нека отворим нашето приложение с продукти, а в него файла productsSlice.js. Обърнете внимание на дефиницията initialState. Първоначално нашия слайс с продукти productsSlice - това е масив, в който има обекти (в нашия случай са два) с данни за продукти. Първо, тъй като сега ще зареждаме тях от сървъра, то трябва да ги премахнем от initialState. Второ, ще изпращаме към сървъра API заявки и ще е важно да знаем за техния статус. Имайки предвид тези две неща, нека променим initialState. Нека сега това да бъде просто обект с полета products (първоначално тук няма да има никакви данни, а просто празен масив), status и error. Сега нашият код за initialState ще стане малко по-кратък:

const initialState = { products: [], status: 'idle', error: null, }

Засега сложихме статус 'idle' (бездействие), тъй като първоначално не изпращаме никакви заявки, а като цяло той ще се променя и може да приема стойности 'зареждане', 'изпълнено', 'грешка при зареждане'. Помнете, че за обозначаване на статус можете да изберете тези имена, които ще са удобни за вас.

Спускаме се по-надолу по кода. След промяната на initialState, трябва да променим и кода, в който работим с това състояние във функциите-редуктори. Нека разгледаме кода за productAdded:

state.push(action.payload)

Сега новите продукти ще ги слагаме не просто в state за продукти, а в неговото свойство state.products. Затова, заменяме горния ред с:

state.products.push(action.payload)

Съответно, ще направим същите промени за редуктора reactionClicked. Вместо:

const currentProduct = state.find((product) => product.id === productId)

Сега ще бъде:

const currentProduct = state.products.find((product) => product.id === productId)

Сменете сами state с state.products и в кода на редуктора productUpdated.

Отворете вашето приложение със студенти. Отворете в него файла studentsSlice.js. Нека сега вашият initialState има три свойства: students, status, error - променете го, както е показано в урока.

Внесете съответните промени и по-надолу в кода. Сменете state с state.students в кода за вашите три функции-редуктори.

Български
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
Ние използваме бисквитки за работата на сайта, анализ и персонализация. Обработката на данни се извършва в съответствие с Политика за поверителност.
приемам всички настройки отхвърляне