Most Senior React Devs Don’t Know How To Fix This

  Рет қаралды 182,965

Web Dev Simplified

Web Dev Simplified

Күн бұрын

React Simplified Course: reactsimplified.com
You probably know about how to use keys in React arrays, but did you know that keys can be used for much more than just arrays? In this video I will show you 2 different ways that you can use keys to fix bugs that nearly no one knows about.
📚 Materials/References:
React Simplified Course: reactsimplified.com
🌎 Find Me Here:
My Blog: blog.webdevsimplified.com
My Courses: courses.webdevsimplified.com
Patreon: / webdevsimplified
Twitter: / devsimplified
Discord: / discord
GitHub: github.com/WebDevSimplified
CodePen: codepen.io/WebDevSimplified
⏱️ Timestamps:
00:00 - Introduction
00:28 - The bug explained
03:18 - Using keys to fix the bug
06:05 - Another advanced key use case
#ReactJS #WDS #AdvancedReactJS

Пікірлер: 350
@leos.2322
@leos.2322 11 ай бұрын
been using keys for a long time and this video has actually finally made me understand what they truly are
@syth-1
@syth-1 11 ай бұрын
Same! As soon as he said the issue I exclaimed 'keys', it finally occurred to me what those were for
@bismarkosei9656
@bismarkosei9656 11 ай бұрын
Same here!!
@ghun131
@ghun131 11 ай бұрын
Same. I guess it's because I'm clueless about the virtual DOM
@svenyboyyt2304
@svenyboyyt2304 11 ай бұрын
​@@ghun131It applies to the normal DOM too.
@fmilioni
@fmilioni 10 ай бұрын
Sad, but me too, 6+ years using react
@theresamclaird1572
@theresamclaird1572 11 ай бұрын
This is funny; I literally dealt with this recently in a project. Figuring it out was frustrating because like others have mentioned, I had really only been using keys when mapping over arrays. I experienced all the emotions - disbelief, then anger (thinking I had found a bug with React), then frustration, then relief after adding keys, followed by confusion wondering whether I really should use keys - and after much research and digging around and seeing others do this, it made sense. Sometimes I think we miss some fundamentals while we “learn as we go”.
@AmodeusR
@AmodeusR 11 ай бұрын
I think this is one of those edge cases we can't really account for. It may look simple, but we rarely need to do something like this, hence no one teaches it.
@nghiaminh7704
@nghiaminh7704 11 ай бұрын
who wrote this code without a comment explaining an edge case is an total asshole.
@user-te2pe5qm8o
@user-te2pe5qm8o 11 ай бұрын
Anger yes, we all do this
@supercoolcat7692
@supercoolcat7692 11 ай бұрын
Literally had a discussion with a friend about the down sides of learning as you go. In my case it was modifying a rest api to process dynamic queries based on the POST object received from the client, so as to send only the requested data in the right format. Learning GraphQL in the first place would have saved me all that trouble. Learning as you go happens by default regardless. Learning actively has far reaching benefits without a doubt.
@user-te2pe5qm8o
@user-te2pe5qm8o 11 ай бұрын
​@@supercoolcat7692 The best way is to do both simultaneously, direct learning is too boring and difficult to understand, Learning as you go is easy to get stuck in the basic errors.
@ngugimuchangi5824
@ngugimuchangi5824 11 ай бұрын
Interestingly, this is usually highlighted in reacts docs: 1. State is tied to a position in the tree 2. Same component at the same position preserves state 3. Different components at the same position reset state
@exmachina767
@exmachina767 11 ай бұрын
Seems like a lot of people don’t like to read. I’ve seen it for React and other languages that actually have quite good docs for free. Seems like they’d rather pay for video courses…
@ngugimuchangi5824
@ngugimuchangi5824 11 ай бұрын
@@exmachina767 Docs contain a lot of info about how the library works. Though an understanding of the language itself, in this case JavaScript is key, for someone to really gain insight from the docs. Otherwise, people want to copy and paste the solution.
@wlockuz4467
@wlockuz4467 11 ай бұрын
Thank you! I think the title is a bit hyperbole when its explicitly pointed out how keys work in docs.
@ngugimuchangi5824
@ngugimuchangi5824 11 ай бұрын
@@wlockuz4467 I agree. This is one of the topics that is covered quite early in react docs. You don't have to dig deep to find it.
@rico5146
@rico5146 9 ай бұрын
Yeah, actually there are so many things we can learn from react docs. Even though somesone is senior react dev, i truely recommend reading all the react docs and api reference that updated all recently at least once.
@jyothiswaroop2964
@jyothiswaroop2964 11 ай бұрын
Never used keys outside arrays!! Thanks Kyle! It was quite helpful.
@marktheunknown1829
@marktheunknown1829 11 ай бұрын
As a React learner, this was a very useful video Thank you and keep doing the good work
@Franiveliuselmago
@Franiveliuselmago 11 ай бұрын
This short video is actually very useful. I have a scroll position persistence problem in a project and this should solve that
@petarkolev6928
@petarkolev6928 11 ай бұрын
React community is so blessed having you, thank you, Kyle!
@peder6199
@peder6199 11 ай бұрын
I'm really new to react and watch this yesterday and today I run into just this kind of problem but could now directly solve it. Thank you. 🙏
@ichigoplayss376
@ichigoplayss376 11 ай бұрын
Ever since I learned about how useful keys are in react it made my life easier, 'cause before I sometimes use useEffect just to get the behavior I wanted, and is prone to unnecessary rerender. I just saw it on TikTok. And yes, this is very useful in so many cases. Thank you Kyle.
@sarahroberts7984
@sarahroberts7984 11 ай бұрын
This is so helpful! Thank you so much for helping!
@IAmKillerPotato
@IAmKillerPotato 11 ай бұрын
I had this exact issue last week with an array of components. I have they keys as the array index so they persisted when I changed the elements of the array. I worked around it a different way but now I know a much cleaner solve.
@StephenRayner
@StephenRayner 11 ай бұрын
😮 shocked so many people don’t know this. Well explained though. Always solid content! Knowledge is power 🎉
@diosupremo4928
@diosupremo4928 11 ай бұрын
So do I, hooks are suposed to hold values between re renders, and if you change a parameter which is independent from the hook it has no sense to lose that state. Or at least this was the way i though it.
@husler7424
@husler7424 11 ай бұрын
@@diosupremo4928 "hooks are suposed to hold values between re renders" can you please elaborate this statement?
@mostafaalmahmud
@mostafaalmahmud 8 ай бұрын
It really helped me a lot to find out the "unique key props" errors in the react projects. Thanks a lot for your efforts as well.
@ozzyfromspace
@ozzyfromspace 11 ай бұрын
That's wild! I literally experienced this while working with a controlled select element yesterday. Read through a github discussion and learned that keys could reset my select for the next round of my app to do its thing. I didn't fully get it, but I was like "it is what it is". Then YT recommends this video to me a day later. How perfectly timed! I was basically primed to appreciate this video. Thanks Kyle, this was awesome.
@wistemoor9671
@wistemoor9671 11 ай бұрын
I don't think i have run into this yet, going to have to keep a lookout for this. Thanks!
@atul7173
@atul7173 11 ай бұрын
This really helped me improve my mental model around keys in react. Thanks for the video❤
@adamreed2000
@adamreed2000 11 ай бұрын
Nice tutorial, really good explanation of what’s happening under the hood and some applications of how it’s used. Love it
@taofeeqomotolani2311
@taofeeqomotolani2311 11 ай бұрын
The new react doc explained this so well too. Cool video
@yashchauhan5710
@yashchauhan5710 11 ай бұрын
Can u give link?
@MrTomro
@MrTomro 11 ай бұрын
the video is pretty much a copy from official docs. still cool for people that dont like reading docs i guess
@zksumon847
@zksumon847 11 ай бұрын
​@@MrTomrocool for people that don't know how to read
@beulahakindele9990
@beulahakindele9990 11 ай бұрын
I remember encountering this issue 3 years ago when I was building an inventory management system. Took me days to understand why the state was persisting across re-renders.
@johny962
@johny962 8 ай бұрын
Thank you for publishing this. This tip has already helped me in multiple projects.
@StefanoV827
@StefanoV827 11 ай бұрын
I already knew this because of dart/flutter. It works absolutely the same way, with the same syntax too 😂 I think you could start a flutter channel too, cause dart is basically React + static typed variables with null safety.
@cardel-qq6xp
@cardel-qq6xp 11 ай бұрын
That would be awesome, I really want to learn bloc in flutter.
@StefanoV827
@StefanoV827 11 ай бұрын
@@cardel-qq6xp a lil bit controversial, but i love BLoC. Absolutely more than provider or riverpod
@wlockuz4467
@wlockuz4467 11 ай бұрын
Flutter was inspired by React after all
@sauer.voussoir
@sauer.voussoir 10 ай бұрын
Now I understand the purpose of keys in React. One important point you mentioned is that keys are mostly used in loops when returning JSX elements, and the compiler always warns us to use a key in such scenarios. Thanks to this video, I can now reuse the same component without encountering issues of conflicting distinctions.
@rubenmartinez2807
@rubenmartinez2807 11 ай бұрын
Boosting careers out here, keep em coming Kyle we appreciate you very much man!
@MarcelOramas
@MarcelOramas 11 ай бұрын
Loved this, didn't know about it!🙌
@nitsanbh
@nitsanbh 11 ай бұрын
Good vid! One your most helpful ones (for me, at least)!
@DavideAlbertoMolin
@DavideAlbertoMolin 11 ай бұрын
There actually "is" a bug (so to speak) in your Counter component. IF the change of name is cause for the counter to reset its value, the best way to achieve that is NOT to use key (that would force React to rebuild/redraw the entire Counter component) but implement Counter properly. The Counter component should be aware of the fact that changing its "name" property should result in the value of the counter being reset to zero. This is very simple to achieve with a simple useEffect() in the Counter component; This would also simplify the App component since you would not need anymore to use a ternary operator with Counter; but just pass the updated name to it (and the Counter component would auto-reset its value as a consequence).
@Cannn414
@Cannn414 11 ай бұрын
It's using use state to persist the state not reset it to zero
@joepetrillo6185
@joepetrillo6185 10 ай бұрын
I agree, but this simple example is a good way to show what keys are/do. I do believe this should be done in a useEffect if it's just the name that is going to be causing a re-render. On the other hand, if there has to be more than one useEffect, keys become the better choice.
@LazarethPrime
@LazarethPrime 9 ай бұрын
It all depends on what you're designing and how generic you want your counter component to be. I'd say it would be incorrect to assume the counter should be reset when the label for it is changed, and enforcing that in the counter component itself would make it impossible to use the component in scenarios where you want to change the name without changing the score. One example would be where the name for the counter isn't the name for a person but a word like "successes" and you support changing the language on the fly. I don't want my successes reset just because I changed the language, do I? But if the entirety of the app, forever, is what we have in front of us, then sure, but at that point we're not architecting our codebase we're merely golfing it.
@naterardin8053
@naterardin8053 11 ай бұрын
I've had a series of sneaky bugs where data was persisting between pages of a dynamic react-router route, and fixed it with some workarounds. Turns out, adding a "key" actually solves all of them! Even better yet, I didnt go searching for this video. It just appeared in my recommended
@sophektounn6422
@sophektounn6422 10 ай бұрын
That's some gold nugget there! I didn't even know about how react treats the dom like that! Thanks I will definetly get your course now.
@golden_smiles
@golden_smiles 11 ай бұрын
What a piece of work the React, that's why it's happening. Tell us that Snow and Charcoal is exactly the same thing, and go on to tell how to fix this bug in _our_ code. We just need add keys to all of our code, no problem. Otherwise internal state of a component will no any binding to the component itself, and you completely messed up. Oh, we don't need to add keys to all of our code... But you need to guess, do the react knows is this chunk of DOM is the same than the other one or not. So better look better. Peace of beautiful work.
@rubylnic
@rubylnic 11 ай бұрын
Thank you so much! Your videos are gems!❤
@rickharold7884
@rickharold7884 11 ай бұрын
yea cool. Right out of ur awesome react course w arrays. Love it
@bla156
@bla156 11 ай бұрын
I don't think it's senior-level stuff, but I understand that the clickbaity video title is good for the channel in general.
@micguo2000
@micguo2000 11 ай бұрын
Thank you! this is so clear and helpful.
@WebDevSimplified
@WebDevSimplified 11 ай бұрын
I'm glad I was able to help!
@user-sc6vy4tw6m
@user-sc6vy4tw6m 11 ай бұрын
This is enlightening! I guess this peculiar behavior comes from React's reconciliation mechanism, where React finds the React DOM node that's changed and then updates the changed node and its child nodes, while unchanged nodes and their child nodes remain intact.
@kecapo
@kecapo 11 ай бұрын
For React "isKyle ? : " is the equivalent of , so it would be mounted only once, and so the state. A stupid solution could have been putting a prop "isKyle" to Counter, and using a useEffect(() => setCounter(0), [isKyle]), so everytime Kyle state changes, the useEffect will be triggered, resetting the counter. The best solution can be using "key" as he said during the video. The solutions, sometimes, can be a lot, especially when the code becomes more complex as you go. But the "best" (better) solution can be known only when you deep understand what you are using (React framework, in this case). That's why you should always deepen your knowledge about a new framework/library/sdk/language, when start learning it, otherwise you will always be a "half developer", that will cause spaghetti code, bad maintained code, no extendibility, etc. I worked with people that didn't know about useMemo, useCallback and memo(), Suspense, Lazy, etc. and they didn't know how to use them. In big projects you risk to destroy the application performance, because you tend to use the solution that can work in that very moment. Instead, the best practice is always trying to create/find the best solution, thinking that can be reusable for other components, thinking that in the future the code can be changed, thinking that that code can be read by someone else. When you always try to do better, it will be easier for your brain to find the best solution for that problem, because you are training your brain to think Out of the box. Instead, if you find the cheap solution, your brain will always stay at the same level. Hope it helps to new programmers, or new React developers.
@5iGnuM
@5iGnuM 11 ай бұрын
Keys become really important whenever dealing with animations. And there it also becomes super clear how this works. I recently wrote a component that fades in a view and fades out another one at the same time, like a visual animated swap of components. Without keys properly set, animations would never work correctly. Good point again Kyle, thanks for bringing it up!
@troshky_webanuti
@troshky_webanuti 11 ай бұрын
Using key was my first idea of how to deal with this issue when I watched the intro :) Thanks for the useful video as always :)
@AttackHelicopter64
@AttackHelicopter64 10 ай бұрын
this is actually really important, as knowing reconciler algorithms helps to avoid so much pain one of the reasons why conditional rendering is a thing - it allows us to preserve positions {isTest && } } no matter what value 'isTest' is, Component's element will be on index-1, while index-0 is either false or same thing here - reconciler only cares about position and type. so if type and position is the same - it only updates that's why if you construct component type dynamically, you should memoize it properly (or use another approach tbh), cause if not your component will just keep re-mounting
@helleye311
@helleye311 11 ай бұрын
Keys are fantastic. I learned the power of them a little bit ago from the (back then beta) new react docs, from the 'you might not need an effect' section. Basically immediately went and removed 10 useEffects, each ~15 lines long, just replaced them with initial state setters and keys. It was so nice.
@himbary
@himbary 11 ай бұрын
Thanks for the tip
@Helium6000
@Helium6000 11 ай бұрын
I encountered this bug before and resolved it by utilizing the useEffect hook, with 'name' specified as a dependency. Whenever the name changes, the counter restarts. However, it would have been great if I had known about this earlier. XD
@NirdeshPokhrel
@NirdeshPokhrel 11 ай бұрын
Informative, Thanks !
@fadimeozdemir4453
@fadimeozdemir4453 4 ай бұрын
Best explanation about keys in react I've seen so far
@elyasaf755
@elyasaf755 11 ай бұрын
Oh wow. This video is amazing! Thank you :)
@netssrmrz
@netssrmrz 11 ай бұрын
Nice video. Good to shed some light on the internals of React's virtual DOM. Personally, this makes me so glad I don't use React for my personal projects.
@pedroserapio8075
@pedroserapio8075 11 ай бұрын
Good for you!
@EddyVinck
@EddyVinck 10 ай бұрын
I fixed a bug at work today with this, about a month after watching this video, thanks! 🎉
@coding-lemur
@coding-lemur 11 ай бұрын
We have that "issue" often with our icons. Thanks for your detailed explanation :)
@mohammedsaber6782
@mohammedsaber6782 11 ай бұрын
Very usefull explaination, keep going man.
@sanchezcarlos1986
@sanchezcarlos1986 9 ай бұрын
Today this video saved my day (and my mental health). Thank you!
@seanmcgrady8688
@seanmcgrady8688 11 ай бұрын
I understood the problem before the reveal. I feel special. :D
@MichaelCampbell01
@MichaelCampbell01 11 ай бұрын
Neat. Well explained as always.
@aamiramin6112
@aamiramin6112 11 ай бұрын
Very informative kyle. You are awesome
@MyMike004
@MyMike004 11 ай бұрын
I was running multiple times on this issue but it was ok because React notify you on your browser elements should have keys haha except for the case early he was explaining, this can be tricky! well done :)
@BRP-Moto-Tips
@BRP-Moto-Tips 11 ай бұрын
I think the warning only comes if you're mapping an array or something along those lines, a few days ago I had a problem involving the state of a child that persisted while the parent rerendered on new state. I solved it using a key in the child component and voila
@MyMike004
@MyMike004 11 ай бұрын
@@BRP-Moto-Tips yes this is exactly what I am talking about. Also, it doesn't come as a warning but as an error
@Amar11115
@Amar11115 11 ай бұрын
it was great explanation. thanks!
@feynthefallen
@feynthefallen 11 ай бұрын
Very good explanation on how React uses the DOM.
@oo-fv7sy
@oo-fv7sy 11 ай бұрын
im currently working on a project and i dealt with this and i just gave up on solving it really thank u u helped me alot and more ppl like me thanks again ♥
@inkclusiveDesign
@inkclusiveDesign 11 ай бұрын
If you had read react docs you would've solved even faster , do give react doc a good read you'll learn a lot
@oo-fv7sy
@oo-fv7sy 11 ай бұрын
@@inkclusiveDesign thats true im actually gonna start reading it all now thanks for the reminder
@inkclusiveDesign
@inkclusiveDesign 11 ай бұрын
@@oo-fv7sy Docs are so well written and structured, you'll love reading it
@Cloud9er
@Cloud9er 9 ай бұрын
This video helped a lot in clearing up another React nuance
@timonesh7949
@timonesh7949 11 ай бұрын
I always come here when I need to get smth quick fast 👍great work
@karthikudupa5475
@karthikudupa5475 11 ай бұрын
That is great explanation Kyle.
@marimuthur9456
@marimuthur9456 11 ай бұрын
You are really incredible man awesome keep going👌👌👍
@user-jt1vn9eg3o
@user-jt1vn9eg3o 11 ай бұрын
wow it's really helpful video. thank you
@alexanderhergert875
@alexanderhergert875 11 ай бұрын
after 10sec the answer is key :) The learn react tutorial was really amazing and was covering this example. I suggest all new react learners to work trough the official react tutorials they are very good.
@Kitulous
@Kitulous 11 ай бұрын
0:21 i had something similar in flutter, where i was changing the rendering order of a few stacked widgets and they were behaving weirdly until i added keys
@sekhar6753
@sekhar6753 11 ай бұрын
Very useful content! thanks
@raulnoheagoodness
@raulnoheagoodness 11 ай бұрын
Thank you for this video. It makes me happy I skipped React and use Svelte 😂. Of course, sometimes we have to do assignments to force reactivity, so pick your poison. function addNumber() { numbers.push(numbers.length + 1); numbers = numbers; }
@ahmedatri3036
@ahmedatri3036 11 ай бұрын
good topic, perfect explanation
@jorgejorge8878
@jorgejorge8878 11 ай бұрын
Great content, as usual, Kyle
@kokoyroy
@kokoyroy 11 ай бұрын
well done! Great Job bro!
@armandsriekstins7646
@armandsriekstins7646 11 ай бұрын
Happy to know I knew the answer to this
@lucienchu9649
@lucienchu9649 4 ай бұрын
Nice deep dive, thanks
@d3vilm4ster
@d3vilm4ster 11 ай бұрын
I'm glad to know I actually learnt this like 5 years ago... I been doing react since early 2015, but great tip tho!
@ninthsun
@ninthsun 11 ай бұрын
wow this seems super useful!!👍
@mikejakusz1493
@mikejakusz1493 11 ай бұрын
Hey @WebDevSimplified, when is the course expected to come out?
@sandrinjoy
@sandrinjoy 11 ай бұрын
Got similar behavior on nextjs page change. where i was charging the order of list using msth random , but the ui wasn't updating because there were only image renders. it was working fine when i added some text in the item component
@TylerR909
@TylerR909 11 ай бұрын
Huh, can't say in 5 years I've ever encountered this but interesting nonetheless. Would've been nice to see you write out `` to drive the point home that all React sees is that Props changed, not the whole component. I absolutely would've expected React to figure this out on its own, but good to be aware of.
@veedjohnson
@veedjohnson 11 ай бұрын
I’m pretty sure he didn’t do it that way cos he wanted to buttress the point that even though two counter components are rendered, react wouldn’t know which one to update
@grzesieksgs
@grzesieksgs 11 ай бұрын
I'd say that this approach with using key is debatable. Counter could be reset by using useEffect, and overall this "bug" would not float up if code would be structured in different way. Theres no point to confuse junior developers with less known react features, when code can be simply restructured.
@diegounanue
@diegounanue 11 ай бұрын
What plug-in are you using to get methods info and types? And code suggestion like minute 4:56 and 5:00
@x209sfinestx
@x209sfinestx 11 ай бұрын
Awesome explaination
@brain5853
@brain5853 11 ай бұрын
Is this the same in Next JS? For example, when you open the same page with different data. Some state sometimes persists, keys then should solve this too?
@viniciuscarvalho8316
@viniciuscarvalho8316 11 ай бұрын
I spent the whole day racking my brain over it and couldn't figure it out. Thank you! By the way, are you a wizard?
@HiImKyle
@HiImKyle 10 ай бұрын
I can't think of a situation where I have used this setup and used the same element for both true and false so I'd argue it still works how you expect it to just in this specific case it has unwanted side effects
@vileider
@vileider 11 ай бұрын
I watch your videos for such a long time that I said "..you have to use key" with you. Greeting from UHI in inverness.
@nilambarsharma4869
@nilambarsharma4869 11 ай бұрын
Nice tip. Thanks.
@NotesandPens-ro9wx
@NotesandPens-ro9wx 11 ай бұрын
Wow dude, you cleared my concept in just 10mins, minus my teeths :D
@ae_holic
@ae_holic 11 ай бұрын
I also was interested in how you made your useLocalStorage hook but sadly you didn't toggle the function body which I was waiting for.
@ManvendraSK
@ManvendraSK 11 ай бұрын
Such kind of use cases are rare, but they exist. I used manual keys once in 2017 and recently this year in April.
@system_infected
@system_infected 11 ай бұрын
You could also have an useEffect set the state back to 0 in the Counter component with the prop name as dependency
@BasantSiingh
@BasantSiingh 10 ай бұрын
Even I thought of doing that but using useEffect will have an extra render when you set the state to 0
@sm1ley732
@sm1ley732 11 ай бұрын
informative as usual 👌
@amnaatarapper
@amnaatarapper 11 ай бұрын
I've learned this the hard way. We've had a weird bug in our cart system whenever you edit the quantity of an item in a cart the item above it lose its quantity, this time we actually had keys which was relying on an id, the problem is the dev before me was extracting id from an object instead of _id so all items had undefined as a key which led to the bug..
@godwinchibyk639
@godwinchibyk639 11 ай бұрын
This is helpful 👏
@mdminhazahamedrifat3282
@mdminhazahamedrifat3282 11 ай бұрын
do you mind explaining how to reset state on a dynamic route with query params (both slug and query change) on nextjs?
@jsonkody
@jsonkody 9 ай бұрын
Well, as a kinda senior Vue dev I knew what the probelm is - it's quite common in Vue that when I render someting in similar way I need to key the components.
@wlockuz4467
@wlockuz4467 11 ай бұрын
If you have read the docs on React's reconciliation algorithm this is explicitly pointed out. Keys are the things that help React bring down a o(n³) diffing algorithm down to o(n) To quote React docs "The state of the art algorithms have a complexity in the order of O(n3) where n is the number of elements in the tree. If we used this in React, displaying 1000 elements would require in the order of one billion comparisons. This is far too expensive. Instead, React implements a heuristic O(n) algorithm based on two assumptions: 1. Two elements of different types will produce different trees. 2. The developer can hint at which child elements may be stable across different renders with a key prop."
@rasib101
@rasib101 11 ай бұрын
Great video!
@Liz3_
@Liz3_ 10 ай бұрын
you could just have a useEffect within the counter which resets the count state on name change, this is expected behaviour afterall and would avoid a entirely new instance of the component because it just updates the state, also there no need to tenary the entire comp can just do that on the prop that makes it a bit less ambiguous. Using "useLocalStorage"(which btw is also a terrible idea because its a sync main thread operation which can be slow for big data blobs) it probs doing the above mentioned under the hood so you would not need any keys.
@unknown-vh1dc
@unknown-vh1dc 11 ай бұрын
That totally saved me!!!
@blyatMail
@blyatMail 11 ай бұрын
kyle would you make a video about qwik builder? step by step, im not native english and bad of reading documentation.. maybe with your tutorial it helps me a lot.. thank you
@CrusaderMen
@CrusaderMen 11 ай бұрын
Thanks!
@PostMeridianLyf
@PostMeridianLyf 11 ай бұрын
I wrap all my components in fragment or divs. or . I mainly do this in case i need to give a name to a div class but havent used it in a while. I wonder if this is why I never ran into this issue.
@peryMimon
@peryMimon 11 ай бұрын
worth watching. And it's a simple matter. But first time I come across keys outside the loop
@adityaanuragi6916
@adityaanuragi6916 11 ай бұрын
So I tried coding this with children and the issue persists I coded it as Kyle And Sally And I perform destructing {children} Then the counter component does the same thing as the video only I tied in a different way I thought since the children are different (p and h1) I thought it'll be a new state but I think react just sees that both times there's a Counter as parent and decided same state and moved on Damm Kyle I must say your the absolute best teacher when it comes to react. If I had known HTML, CSS, JS from before, I would've learned react from you and your course instead of taking a Udemy course that covered the html, css, js and react, Andrei Neagoie isn't as good of a teacher, you're the best teacher man
@robertsandiford6223
@robertsandiford6223 11 ай бұрын
children are a prop passed to the Counter. So changing children is identical to changing other props (Except key)
@adityaanuragi6916
@adityaanuragi6916 11 ай бұрын
@@robertsandiford6223 yea pretty much
@robertsandiford6223
@robertsandiford6223 11 ай бұрын
@@adityaanuragi6916 not pretty much. The JSX compiler literally turns children into a prop.
@adityaanuragi6916
@adityaanuragi6916 11 ай бұрын
@@robertsandiford6223 got it
How To Maximize Performance In Your React Apps
12:58
Web Dev Simplified
Рет қаралды 91 М.
Why Signals Are Better Than React Hooks
16:30
Web Dev Simplified
Рет қаралды 454 М.
Countries Treat the Heart of Palestine #countryballs
00:13
CountryZ
Рет қаралды 29 МЛН
TRY NOT TO LAUGH 😂
00:56
Feinxy
Рет қаралды 16 МЛН
Универ. 13 лет спустя - ВСЕ СЕРИИ ПОДРЯД
9:07:11
Комедии 2023
Рет қаралды 4,9 МЛН
WTF Do These Even Mean
13:44
Web Dev Simplified
Рет қаралды 75 М.
10 Tailwind Classes I Wish I Knew Earlier
13:31
Web Dev Simplified
Рет қаралды 163 М.
Learn useMemo In 10 Minutes
10:42
Web Dev Simplified
Рет қаралды 465 М.
You are using useFetch WRONG! (I hope you don't)
11:14
Alexander Lichter
Рет қаралды 18 М.
This is the Only Right Way to Write React clean-code - SOLID
18:23
You might not need useEffect() ...
21:45
Academind
Рет қаралды 150 М.
This One Line Of Code Catches React Bugs For You
15:55
Web Dev Simplified
Рет қаралды 57 М.
The problem with useEffect
11:37
Cosden Solutions
Рет қаралды 31 М.
These Mistakes Almost Stopped Me From Learning To Code
11:34
Web Dev Simplified
Рет қаралды 167 М.
The Most Important Skill You Never Learned
34:56
Web Dev Simplified
Рет қаралды 152 М.
Countries Treat the Heart of Palestine #countryballs
00:13
CountryZ
Рет қаралды 29 МЛН