All language subtitles for 067 useReducer - Add Item.en_US

af Afrikaans
ak Akan
sq Albanian
am Amharic
ar Arabic
hy Armenian
az Azerbaijani
eu Basque
be Belarusian
bem Bemba
bn Bengali
bh Bihari
bs Bosnian
br Breton
bg Bulgarian
km Cambodian
ca Catalan
ceb Cebuano
chr Cherokee
ny Chichewa
zh-CN Chinese (Simplified)
zh-TW Chinese (Traditional)
co Corsican
hr Croatian
cs Czech
da Danish
nl Dutch
en English
eo Esperanto
et Estonian
ee Ewe
fo Faroese
tl Filipino
fi Finnish
fr French
fy Frisian
gaa Ga
gl Galician
ka Georgian
de German
el Greek
gn Guarani
gu Gujarati
ht Haitian Creole
ha Hausa
haw Hawaiian
iw Hebrew
hi Hindi
hmn Hmong
hu Hungarian
is Icelandic
ig Igbo
id Indonesian
ia Interlingua
ga Irish
it Italian
ja Japanese
jw Javanese
kn Kannada
kk Kazakh
rw Kinyarwanda
rn Kirundi
kg Kongo
ko Korean
kri Krio (Sierra Leone)
ku Kurdish
ckb Kurdish (Soranî)
ky Kyrgyz
lo Laothian
la Latin
lv Latvian
ln Lingala
lt Lithuanian
loz Lozi
lg Luganda
ach Luo
lb Luxembourgish
mk Macedonian
mg Malagasy
ms Malay
ml Malayalam
mt Maltese
mi Maori
mr Marathi
mfe Mauritian Creole
mo Moldavian
mn Mongolian
my Myanmar (Burmese)
sr-ME Montenegrin
ne Nepali
pcm Nigerian Pidgin
nso Northern Sotho
no Norwegian
nn Norwegian (Nynorsk)
oc Occitan
or Oriya
om Oromo
ps Pashto
fa Persian
pl Polish
pt-BR Portuguese (Brazil)
pt Portuguese (Portugal)
pa Punjabi
qu Quechua
ro Romanian Download
rm Romansh
nyn Runyakitara
ru Russian
sm Samoan
gd Scots Gaelic
sr Serbian
sh Serbo-Croatian
st Sesotho
tn Setswana
crs Seychellois Creole
sn Shona
sd Sindhi
si Sinhalese
sk Slovak
sl Slovenian
so Somali
es Spanish
es-419 Spanish (Latin American)
su Sundanese
sw Swahili
sv Swedish
tg Tajik
ta Tamil
tt Tatar
te Telugu
th Thai
ti Tigrinya
to Tonga
lua Tshiluba
tum Tumbuka
tr Turkish
tk Turkmen
tw Twi
ug Uighur
uk Ukrainian
ur Urdu
uz Uzbek
vi Vietnamese
cy Welsh
wo Wolof
xh Xhosa
yi Yiddish
yo Yoruba
zu Zulu
Would you like to inspect the original subtitles? These are the user uploaded subtitles that are being translated: 1 00:00:00,150 --> 00:00:09,690 All right, and once we have refactor to basic use reducer set up, now let's see how the dispatch works, 2 00:00:10,020 --> 00:00:19,860 how the register works, and what is a function in order to affect anything in our state, we would 3 00:00:19,860 --> 00:00:20,740 need to dispatch. 4 00:00:21,240 --> 00:00:27,910 And I'm going to do that if the name is there, meaning if it is true, if it's not an empty string. 5 00:00:28,290 --> 00:00:33,950 So I'll have to add at least one letter and then I'll click on add on. 6 00:00:34,020 --> 00:00:35,550 And here we call dispatch. 7 00:00:36,360 --> 00:00:38,130 So that is our function. 8 00:00:38,490 --> 00:00:46,250 And we always, always need to pass in the object with a property by the name of type. 9 00:00:46,680 --> 00:00:48,180 So that is going to be our action. 10 00:00:48,430 --> 00:00:52,140 So action is going to be our object and not in that object. 11 00:00:52,140 --> 00:00:59,700 You must have the property by the name of type and one you need to set it equal to something. 12 00:00:59,940 --> 00:01:03,900 A common practice is using uppercase, but you don't have to. 13 00:01:04,140 --> 00:01:07,050 So in my case, I'll just call this testing. 14 00:01:07,500 --> 00:01:12,690 And then once you dispatch once you dispatch your action, that's what it's called. 15 00:01:12,990 --> 00:01:16,700 Then in register, you need to handle it. 16 00:01:16,830 --> 00:01:25,320 And like I said, reducers taking Aspromonte or two things state right before that update and then what 17 00:01:25,320 --> 00:01:26,790 action you'll want to do. 18 00:01:26,970 --> 00:01:29,220 So now that is, of course, testing. 19 00:01:29,580 --> 00:01:35,550 Now, one thing you need to keep in mind, that ProMED user, you always, always, always want to return 20 00:01:35,880 --> 00:01:42,270 some kind of state because again, this is going to be that use case where if you don't return, well, 21 00:01:42,690 --> 00:01:46,590 none of the functionality that you have later is going to make sense. 22 00:01:46,920 --> 00:01:52,320 So let me just simply start back on so long and you'll see how there's going to be a big fat error if 23 00:01:52,320 --> 00:01:54,330 we don't return the state. 24 00:01:54,630 --> 00:01:57,050 So we get the state right before the update. 25 00:01:57,210 --> 00:02:00,540 And then I also want to cancel the action. 26 00:02:00,540 --> 00:02:08,580 But if I don't return the state from this function, then this functionality won't make sense because 27 00:02:08,580 --> 00:02:10,750 now, of course, it is going to be undefined. 28 00:02:11,010 --> 00:02:17,670 So once I save and once I have the letter over here, check it out now I have cannot read property is 29 00:02:17,670 --> 00:02:19,650 model open of undefined. 30 00:02:19,650 --> 00:02:20,610 Why what? 31 00:02:20,670 --> 00:02:24,870 Because I had the initial state, the default one that is right here. 32 00:02:25,200 --> 00:02:34,650 But since I dispatched the action, then the action went to register and in register I did not return. 33 00:02:34,650 --> 00:02:42,000 And you state my whole functionality went bananas because there's no more is more open. 34 00:02:42,270 --> 00:02:49,470 That's why you always, always need to return some kind of state if you want your functionality to work. 35 00:02:50,260 --> 00:02:56,620 So once I say even then, once we have, for example, letter F, once we click, check it out, what 36 00:02:56,620 --> 00:02:57,890 do we see in the console? 37 00:02:58,330 --> 00:03:02,130 So now of course I see my old state correct. 38 00:03:02,350 --> 00:03:06,390 And I also see this object with the type of testing. 39 00:03:06,910 --> 00:03:12,380 So that is a state right before they update where we have people already and then his more open and 40 00:03:12,380 --> 00:03:13,840 then model content. 41 00:03:14,410 --> 00:03:17,740 So now let's see how we can work with these values. 42 00:03:18,070 --> 00:03:21,270 So we have the state and we also have the action. 43 00:03:21,850 --> 00:03:31,430 So why don't we go with if statement the condition and check whether we are dispatching the action with 44 00:03:31,430 --> 00:03:33,340 the type of testing. 45 00:03:34,220 --> 00:03:41,490 Let's do it, let's say if and then we go with action, then that type, remember, that is the property 46 00:03:41,510 --> 00:03:45,590 name and if that is equal to a testing, then we would want to do something. 47 00:03:46,010 --> 00:03:53,060 So essentially what you do is set up your dispatch functions with your action object, where you set 48 00:03:53,060 --> 00:03:57,620 up type property with a value and then in register you catch them. 49 00:03:57,950 --> 00:04:02,010 You say, all right, if I dispatch this thing, this is what I would want to do. 50 00:04:02,360 --> 00:04:07,120 So notice how we are not directly affecting state. 51 00:04:07,370 --> 00:04:12,040 It's not like we call set name or set people or set model. 52 00:04:12,080 --> 00:04:13,160 We're not doing that. 53 00:04:13,430 --> 00:04:19,070 We only control the state when we dispatch the action and then in reducer. 54 00:04:19,250 --> 00:04:24,280 This is where we deal with our state and essentially it is more structured. 55 00:04:24,500 --> 00:04:32,420 So even though it's a little bit more boilerplate, it is less prone to errors or some kind of silly 56 00:04:32,420 --> 00:04:33,000 bugs. 57 00:04:33,380 --> 00:04:38,120 So let's deal with our if so, if the action type is testing. 58 00:04:38,360 --> 00:04:41,360 Well, what I would want to do well, I would want to return. 59 00:04:41,630 --> 00:04:42,100 Correct. 60 00:04:42,350 --> 00:04:44,300 I always need to return a state. 61 00:04:44,550 --> 00:04:46,430 So in this case, this is the fourth one now. 62 00:04:46,670 --> 00:04:53,030 But now if the type is correct, if it is testing, then I would want to return that new state. 63 00:04:53,510 --> 00:04:59,180 And since it is an object, again, we need to keep in mind that if I just had some kind of property 64 00:04:59,180 --> 00:05:03,590 here, then still my functionality will go bananas. 65 00:05:03,620 --> 00:05:04,560 Why not? 66 00:05:04,580 --> 00:05:10,180 Because I need to have people I need to have is model and I also need to have more content. 67 00:05:10,310 --> 00:05:12,830 What was the way of getting all those values? 68 00:05:12,860 --> 00:05:14,750 Well, we are returning the object. 69 00:05:14,750 --> 00:05:15,170 Correct. 70 00:05:15,170 --> 00:05:22,430 And then we go with the dot dot and then I would want to copy all the values from the state right before 71 00:05:22,430 --> 00:05:22,880 the update. 72 00:05:23,090 --> 00:05:23,490 Correct. 73 00:05:23,930 --> 00:05:29,030 And now we add a comma and then we just decide what values we would want to change. 74 00:05:29,300 --> 00:05:31,280 And for now, we'll just do it manually. 75 00:05:31,520 --> 00:05:32,720 Where I will say, you know what? 76 00:05:32,720 --> 00:05:35,960 People will be equal to my data or a. 77 00:05:37,100 --> 00:05:41,430 That is more open is going to be actually true. 78 00:05:41,450 --> 00:05:49,820 So say the model and also as far as the model content model content, well, we'll set it equal to ihram 79 00:05:50,270 --> 00:05:54,780 and then added, OK, so let's test it out again. 80 00:05:55,100 --> 00:05:59,900 This will only happen when we click on a button. 81 00:05:59,900 --> 00:06:00,360 Correct. 82 00:06:00,650 --> 00:06:02,090 So let me add something here. 83 00:06:02,240 --> 00:06:03,010 And there it is. 84 00:06:03,380 --> 00:06:09,370 Now I have my list, John, Peter, Susan, Anna, and also I have Ihram added. 85 00:06:09,560 --> 00:06:17,240 So the next time I will do something as far as this dispatch, I will already have this particular state 86 00:06:17,240 --> 00:06:17,690 value. 87 00:06:17,690 --> 00:06:19,870 And you can clearly see that if you want to log. 88 00:06:20,240 --> 00:06:25,790 So if we go here with a state the first time we'll click, it is going to be empty. 89 00:06:26,090 --> 00:06:32,090 But then if we just click one more time, then of course we already have the last state. 90 00:06:32,110 --> 00:06:36,930 Probably that's why it's so important to always return state. 91 00:06:37,190 --> 00:06:42,350 Now, as far as this default one, you can return a state if you want. 92 00:06:42,710 --> 00:06:45,920 But another way, how we can do that is through the error. 93 00:06:46,220 --> 00:06:53,780 If the action that you passed in does not match any of the types that you're checking for. 94 00:06:54,170 --> 00:07:07,280 For example, here I could go with throe and a new error and I'll say no matching action type. 95 00:07:07,880 --> 00:07:10,760 So where I would use that, for example. 96 00:07:11,640 --> 00:07:19,070 If I have here the House and then I dispatch and I don't know by mistake, I'm going to go type and 97 00:07:19,100 --> 00:07:21,950 then random random. 98 00:07:22,380 --> 00:07:31,410 So once I save, once I click on the button, if my value is not there, if it is empty, of course, 99 00:07:31,410 --> 00:07:35,950 I'm going to have a big fat error where it's going to say no matching error type. 100 00:07:36,300 --> 00:07:37,490 So what is happening here? 101 00:07:37,830 --> 00:07:40,410 I could technically return a state. 102 00:07:40,680 --> 00:07:41,910 Yeah, that is an option. 103 00:07:42,240 --> 00:07:50,940 But this just gives me a clue that I'm dispatching something that I'm not catching in the register because 104 00:07:50,940 --> 00:07:54,000 in the register at the moment, notice I have my action. 105 00:07:54,390 --> 00:07:58,090 Action, of course, has the type and I'm just checking for testing. 106 00:07:58,350 --> 00:08:04,620 Now, if I would be checking for a random one that I passed, then of course that is a different scenario. 107 00:08:05,100 --> 00:08:06,510 Then everything would work fine. 108 00:08:06,750 --> 00:08:14,040 But this is a good default scenario where I have a bunch of these ifs for all the action types that 109 00:08:14,040 --> 00:08:15,030 we are about to set up. 110 00:08:15,390 --> 00:08:19,120 And then if none of them match, then we throw the error. 111 00:08:19,260 --> 00:08:23,370 Again, the alternative would be just returning a state. 112 00:08:23,640 --> 00:08:30,180 And then if we return a state, you'll notice that nothing will happen because of course, we're not 113 00:08:30,360 --> 00:08:31,710 checking for it at random. 114 00:08:32,010 --> 00:08:37,050 But also the problem might be that you won't notice that, hey, there's something wrong. 115 00:08:37,050 --> 00:08:39,360 I'm not checking for this action. 116 00:08:39,420 --> 00:08:42,810 That's why the alternative would be throwing the error. 117 00:08:43,230 --> 00:08:44,310 So let me delete it. 118 00:08:44,520 --> 00:08:47,220 And now let's add up to something useful. 119 00:08:47,610 --> 00:08:48,750 Now, what is that useful? 120 00:08:48,930 --> 00:08:55,470 Well, instead of testing, I would want to say add item, because essentially this is exactly what 121 00:08:55,470 --> 00:08:56,100 I would want to do. 122 00:08:56,410 --> 00:08:58,230 So I'll say this patch and then type. 123 00:08:58,500 --> 00:09:03,390 And now I'm going to go with add an underscore item again. 124 00:09:03,390 --> 00:09:08,190 This is just a naming convention where everything is uppercase. 125 00:09:08,250 --> 00:09:14,610 And then in between the words, we just use the underscore that is not at all. 126 00:09:15,060 --> 00:09:20,150 And of course, in the register, I would also want to check that. 127 00:09:20,580 --> 00:09:25,200 So I'm going to go back to add and then underscore item. 128 00:09:25,890 --> 00:09:31,960 Now, everything is awesome, but of course we understand that we won't return just a data. 129 00:09:32,370 --> 00:09:39,780 So this is where I would want to get that value that is coming from the input and then add to my empty 130 00:09:39,780 --> 00:09:40,080 array. 131 00:09:40,710 --> 00:09:42,510 The people are poor knowledge. 132 00:09:42,510 --> 00:09:43,500 Just leave it blank. 133 00:09:43,830 --> 00:09:44,460 Over here is. 134 00:09:45,440 --> 00:09:53,510 And we need to decide what how we can pass that data and the way we passed that data is by adding more 135 00:09:53,510 --> 00:09:56,790 properties in here in the object. 136 00:09:57,080 --> 00:10:05,360 Now, of course, what would help is if I would actually create that item once I'm trying to submit 137 00:10:05,360 --> 00:10:05,890 the form. 138 00:10:06,230 --> 00:10:07,340 So let's do it this way. 139 00:10:07,520 --> 00:10:12,280 I'm going to go with const and then new item is equal again. 140 00:10:12,410 --> 00:10:13,730 We need to have that ID. 141 00:10:13,740 --> 00:10:20,860 So I'll come up with that property, new date and then let's go and get time. 142 00:10:21,410 --> 00:10:26,270 And lastly, we'll set it equal to a string and I'll grab that name. 143 00:10:26,660 --> 00:10:35,060 So whatever is in my state value and I once had dispatch, remember, I just said we can add more properties 144 00:10:35,390 --> 00:10:38,240 and a common convention is calling this a lot. 145 00:10:38,240 --> 00:10:39,980 But again, there's no rule. 146 00:10:40,160 --> 00:10:46,040 And the way you would do that, you would add comma, since it is a new property and payload is equal 147 00:10:46,040 --> 00:10:48,390 to my new item. 148 00:10:48,860 --> 00:10:54,980 So now in the register, not only I'm checking for the type, which of course I'm doing since I would 149 00:10:54,980 --> 00:11:01,480 want to set up some kind of return, but I also would want to grab that payload. 150 00:11:02,330 --> 00:11:09,710 So right above my return in the add item condition, I would want to set new items and that is going 151 00:11:09,710 --> 00:11:11,510 to be equal to that. 152 00:11:11,510 --> 00:11:18,530 So let's copy all the values that we have from default, state or state run before the update, which 153 00:11:18,560 --> 00:11:20,270 of course essentially is going to be empty array. 154 00:11:20,270 --> 00:11:23,900 But as we keep on adding items, there's going to be more and more items. 155 00:11:24,170 --> 00:11:25,670 We go with state items. 156 00:11:26,180 --> 00:11:34,760 So whatever array items we have and then I would want to add action and then payload to the new items. 157 00:11:35,060 --> 00:11:36,800 So not where we have the people. 158 00:11:37,160 --> 00:11:40,190 I'm going to go with new items now. 159 00:11:40,190 --> 00:11:44,150 Of course, I would want to open up the model, so I will leave this model through. 160 00:11:44,510 --> 00:11:47,850 And then of course, I'll also leave item added. 161 00:11:48,110 --> 00:11:55,460 So once we say we have a big fat error because I did not add space and between you and so now let's 162 00:11:55,460 --> 00:12:04,820 try it out, I will go with random and then once I click on ADD, then I have another issue that items 163 00:12:04,820 --> 00:12:06,800 is not iterable. 164 00:12:07,070 --> 00:12:10,550 And of course the reason for that is because it is not items. 165 00:12:10,910 --> 00:12:12,560 Sorry, it is people. 166 00:12:12,830 --> 00:12:14,180 My apologies. 167 00:12:14,390 --> 00:12:17,630 So now everything should work and you know, well, we're still on the subject. 168 00:12:18,280 --> 00:12:20,510 I just call this new people. 169 00:12:20,870 --> 00:12:26,540 The reason for that, because in my original setup, I went with items and now as I'm recording, I 170 00:12:26,540 --> 00:12:27,370 just changed my mind. 171 00:12:27,410 --> 00:12:28,970 That's why we got this bug. 172 00:12:29,340 --> 00:12:32,240 Let's just say random and then we'll add. 173 00:12:32,540 --> 00:12:35,060 And there is now we have, Ihram added. 174 00:12:35,510 --> 00:12:38,780 So we display our model beautiful. 175 00:12:39,210 --> 00:12:43,500 And also we showcase that here in our list. 176 00:12:43,870 --> 00:12:45,680 Now, what else we would want to do? 177 00:12:46,070 --> 00:12:51,260 I guess I would want to clean out my values once I submit. 178 00:12:51,680 --> 00:12:52,130 Correct. 179 00:12:52,460 --> 00:12:53,590 That only makes sense. 180 00:12:54,410 --> 00:12:57,140 So let's do it this way where we have the name. 181 00:12:57,530 --> 00:13:02,870 Right after that, I'm going to go with Satnam and I'll set it back to a.. 182 00:13:02,870 --> 00:13:05,000 String and knowledge dispatch. 183 00:13:05,000 --> 00:13:09,770 Another action or this one will be no value action. 184 00:13:10,220 --> 00:13:20,810 So if I try to submit item without any values, then of course I would want to showcase that in my model 185 00:13:21,260 --> 00:13:25,220 and I'll just change the action around where it's not going to be. 186 00:13:25,430 --> 00:13:30,640 Type random will say no underscore and then value. 187 00:13:31,160 --> 00:13:35,030 Now when it comes to our no value action. 188 00:13:35,520 --> 00:13:40,010 And by the way, let's just go with action type is equal to. 189 00:13:41,160 --> 00:13:43,090 Now underscore value. 190 00:13:43,470 --> 00:13:50,970 So if that is the case, well, what I would want to do, I simply want to return different moral content. 191 00:13:51,270 --> 00:13:51,780 Correct. 192 00:13:51,990 --> 00:13:53,810 And I also would want to showcase the model. 193 00:13:54,180 --> 00:13:59,490 But remember, I still want to return my people. 194 00:13:59,760 --> 00:14:02,790 I still want to show my items. 195 00:14:02,790 --> 00:14:03,200 Correct. 196 00:14:03,480 --> 00:14:06,900 So that's why, again, we go with turn the other DOT state. 197 00:14:06,910 --> 00:14:11,540 So we copy everything coming from the previous state state before the update. 198 00:14:11,820 --> 00:14:15,410 And then we say model is true. 199 00:14:15,810 --> 00:14:19,460 And also, of course, I would have a different model comment. 200 00:14:19,830 --> 00:14:27,720 So I say model content and I will be equal to a place and her value not separate. 201 00:14:28,500 --> 00:14:31,680 And the problem here is that of course, smart enough. 202 00:14:31,680 --> 00:14:36,890 I added in my previous condition and you know, also the name is a little bit different. 203 00:14:36,900 --> 00:14:40,040 It is is modal, open like so. 204 00:14:40,260 --> 00:14:44,160 And now it's the strength where I'll try to submit and disvalue. 205 00:14:44,430 --> 00:14:52,020 And now, of course, we dispatch the no value and then in action we just check again the whole point 206 00:14:52,020 --> 00:14:59,310 where we copy this virus because essentially we just want to change two properties on that state is 207 00:14:59,310 --> 00:15:01,730 more open and model content. 208 00:15:02,130 --> 00:15:07,350 And I want to leave the people, the list of people intact. 209 00:15:07,500 --> 00:15:14,010 Maybe there's going to be cases, for example, with closing model that will only affect one property. 210 00:15:14,310 --> 00:15:20,610 That's why it is very important once we return that always to copy the values, the previous vows from 211 00:15:20,610 --> 00:15:26,060 the state and then just decide which property value we would want to change. 212 00:15:26,070 --> 00:15:29,250 And in our previous example, of course, we change all three of them. 213 00:15:29,670 --> 00:15:36,570 If you want to dispatch a action and then change only one thing, just make sure that you copy all the 214 00:15:36,570 --> 00:15:36,960 values. 215 00:15:37,290 --> 00:15:42,840 If you would want to do things again, the same thing, make sure that you copy drivers if you want 216 00:15:42,840 --> 00:15:43,800 to change all of them. 217 00:15:43,800 --> 00:15:51,960 Again, it is a good practice to always make sure that you're keeping track of your old state values. 218 00:15:52,260 --> 00:15:53,790 And I think we're in good shape. 219 00:15:54,060 --> 00:15:59,490 So now we can add more actions to our arsenal. 20296

Can't find what you're looking for?
Get subtitles in any language from opensubtitles.com, and translate them here.