Kada dvije komponente trebaju dijeliti isto stanje, taj state "podižete" do njihovog najbližeg zajedničkog pretka i proslijeđujete ga putem props, tako da postoji jedinstveni izvor istine.
jsx
() {
[query, setQuery] = ();
(
);
}
Kada dvije komponente trebaju dijeliti isto stanje, taj state "podižete" do njihovog najbližeg zajedničkog pretka i proslijeđujete ga putem props, tako da postoji jedinstveni izvor istine.
() {
[query, setQuery] = ();
(
);
}
Ako bi svaka child čuvala svoju query, bile bi izvan sinkronizacije. Podizanje stanja znači da su ulaz i rezultati uvijek u skladu.
Podizanje stanja gore može vas prisiliti da proslijeđujete props kroz mnoge intermedijarne komponente koje ih ne koriste:
<App user={user}>
<Layout user={user}> {/* just forwarding */}
<Sidebar user={user}> {/* just forwarding */}
<Avatar user={user} /> {/* finally used here */}
children kako bi podaci ostali gdje se koriste umjesto da se provlače kroz.Vodiljna načela: podignite state samo onoliko visoko koliko je potrebno — ne više. Preplanirano podizanje uzrokuje široke re-rendere i prop drilling; podplanirano podizanje uzrokuje neusklađene duplikate.