Redux-daky ýagdaýyň gurluşyny üýtgetmek
Bizim Redux aplikasiýamyzyň daşary serwer bilen araçäklileşigi üçin amala aşyrjak ilkinji basgançak - bu aplikasiýa işledilende onuň üstünde saklanýan maglumatlary alyşdyr. Emma öňünden gelin, aplikasiýamyza käbir üýtgeşmeleri girizeliň.
Önümler bilen bolan aplikasiýamyzy, we onuň
içinde productsSlice.js faýlyny açalyň.
initialState kesgitlemesine üns beriň.
Başlangyçda önümler bilen bolan bölümiňiz
productsSlice - bu önüm baradaky maglumatlar
(bizim ýagdaýymyzda olardan iki sany) bilen bolan
obyektleri öz içine alýan massiwdir. Birinjiden,
indi biz olary serwerden ýüklemelidigimiz üçin,
olary initialState -den aýyrmaly. Ikinjiden,
biz serwere soraglary iberjek we olaryň ýagdaýy
barada bilmek biziň üçin möhüm bolar. Bu iki
zatlary hasaba alanyňyzda, geliň
initialState -y gaýtadan guralyň. Indi bu
diňe products meýdanlary bilen bolan
obyekt bolsun (başlangyçda bu ýerde hiç hili
maglumat bolmaz, diňe boş massiw), status
we error. Indi initialState üçin
biziň kodymyz birneme gysgalar:
const initialState = {
products: [],
status: 'idle',
error: null,
}
Häzirlikçe biz ýagdaýy 'idle' (işsizlik)
edip bellädik, sebäbi başlangyçda hiç hili
sorag ibermeýäris, emma ýöne umumanyň ýagdaýy
üýtgep biler we 'ýüklemek', 'ýerine
ýetirildi', 'ýüklemek ýalňyşlygy'
ýaly gymmatlyklary kabul edip biler. Ýagdaýy
belläp görkezmek üçin siz özüňize amatly
boljak atlary saýlap bilersiňizi ýadyňyzdan
çykarmaň.
Kod boýunça aşak düşeliň. initialState -yň
üýtgemegi bilen baglanyşykly, bu ýagdaý bilen
işleýän funksiýa-redýuserlerimiziň kodyny hem
üýtgetmelidigimize üns bereliň. productAdded
üçin bolan koda göz aýlalyň:
state.push(action.payload)
Indi täze önümleri diňe önümler üçin bolan
state-a salan däl-de, onuň
state.products aýratynlygyna salarys.
Şonuň üçin ýokarda görkezilen setiri şuna
çalyşdyrarys:
state.products.push(action.payload)
Degişlilikde, redýuser reactionClicked
üçin hem şol üýtgeşmeleri amala aşyralyň.
Bunyň ýerine:
const currentProduct = state.find((product) => product.id === productId)
Indi bu bolar:
const currentProduct = state.products.find((product) => product.id === productId)
state -y state.products bilen
productUpdated redýuseriniň kodunda hem
özüňiz çalyşdyryň.
Studentlar bilen bolan aplikasiýaňyzy açyň.
Onyň içindäki studentsSlice.js faýlyny
açyň. Indi siziň initialState -yňyz
üçürt aýratynlyga eýe bolsun: students,
status, error - ony sapakda
görkezilişi ýaly üýtgediň.
Degişli üýtgeşmeleri we aşakdaky koda giriziň.
Üç funksiýa-redýuseriňiziň kodunda
state -y state.students bilen
çalyşdyryň.