
Egy egyszerű React alkalmazást építünk, amely egy gombnyomásra megmutatja a szuperhős valódi nevét.
Kezdjük el.
Először létrehozunk egy Superhero
összetevőt, amelynek name
állapota attribútum. Ez az összetevő előbb ezt rendereli name
.

Most hozzunk létre egy függvényt changeName()
az Superhero
összetevőben. Ez a függvény megváltoztatja az állapotban lévő nevet a szuperhős tényleges nevére.

Most megvan az a Superhero
komponens, amely a szuperhős nevét mutatja, és egy olyan funkció, amely frissíti a nevet az igazi nevére.
A teljes szuperhős-komponens így fog kinézni:

Most hozzuk létre azt az App
összetevőt, amely ezt az Superhero
összetevőt megjeleníti, és egy gombot. Amikor rákattintunk a gombra, megjelenik a valódi szuperhős neve.

Hozzáadtunk egy funkciót, handleClick()
amelyet akkor hívunk meg, amikor a felhasználó rákattint a gombra. Ki kell találnunk a gyermekkomponens, vagyis a Superhero
komponens állapotának frissítésének módját .
Létrehoztunk egy funkciót changeName()
a Superhero
komponens. Ez a funkció megmutatja a szuperhős valódi nevét. Ha ezt a függvényt meghívhatjuk az App
összetevőből, akkor a munkánk elkészült. Tehát ezt a függvényt hívjuk.
Itt jönnek a referenciák megmentésünkre.
Hozzunk létre egy Superhero
komponenst a App
komponensben. Itt van ennek a kódja.

Itt létrehoztunk egy ref React.createRef()
metódust, és Superhero
az ref
attribútummal csatoltuk a ref-et az összetevőhöz .
Most a Superhero
csomópont használatával tudjuk hivatkozni this.superheroElement.current
. A komponensben található changeName()
függvényt a .Superhero
this.superheroElement.current.changeName()
Nézzük frissítés a handleClick()
funkciót a App
komponens, hogy hívja a changeName()
funkciót.
Funkciónk így handleClick()
fog kinézni.

A teljes kódot megnézheti az alábbi homokozóban.
CodeSandbox
A CodeSandbox egy webalkalmazásokra szabott online szerkesztő. codeandbox.io
Most megtanultuk, hogyan frissítsük a gyermekkomponens állapotát egy szülőkomponensről? Remélem, ez hasznos volt.