Ha két komponensnek ugyanazt az állapotot kell megosztania, az állapotot felemelitek a közös ősre, és props-on keresztül lepasszoljátok, hogy egy igazságforrás legyen.
jsx
() {
[query, setQuery] = ();
(
);
}
Ha két komponensnek ugyanazt az állapotot kell megosztania, az állapotot felemelitek a közös ősre, és props-on keresztül lepasszoljátok, hogy egy igazságforrás legyen.
() {
[query, setQuery] = ();
(
);
}
Ha minden child tartaná a saját query-jét, szinkronizálatlan lennének. Az állapot felemelése azt jelenti, hogy a bemenet és az eredmények mindig megegyeznek.
Az állapot felemelésekor arra kényszerülhetsz, hogy props-okat továbbítsd sok közbenső komponensen, amelyek nem használják őket:
<App user={user}>
<Layout user={user}> {/* just forwarding */}
<Sidebar user={user}> {/* just forwarding */}
<Avatar user={user} /> {/* finally used here */}
children-ként, hogy az adat ott maradjon, ahol használják, ahelyett, hogy vezetne át.A vezérlő elv: csak annyira emeld fel az állapotot, amennyire szükséges — ne magasabbra. A túl sok emelés széles re-rendereket és prop drilling-et okoz; a túl kevés emelés szinkronizálat nélküli másolatokat okoz.