# 1.	Jaki problem jest rozwiązywany za pomocą stanu?
Stan umożliwia programistom zarządzanie danymi, których zmiana skutkuje ponownym wykonaniem przez React kodu komponentu, dla którego stan został zarejestrowany. Jest to bardzo ważny mechanizm, który umożliwia programistom tworzenie w pełni dynamicznych aplikacji Reacta.
# 2.	Czym różnią się propy od stanu?
Propy służą do przekazywania danych z komponentów nadrzędnych do zagnieżdżonych. Jest to mechanizm pozwalający programistom tworzenie komponentów do wielokrotnego użytku (cegiełek interfejsu użytkownika). Z kolei stan umożliwia programistom modyfikowanie danych i wymuszanie aktualizacji interfejsu użytkownika, co jest opisane w odpowiedzi na poprzednie pytanie.
# 3.	Jak stan jest rejestrowany w komponencie?
Stan jest rejestrowany za pomocą wywołania wbudowanego haczyka useState() udostępnianego przez Reacta. Jest to standardowa funkcja JavaScriptu traktowana w specjalny sposób wewnętrznie w Reakcie. Gdy wywołujesz funkcję useState(), rejestrowana jest nowa wartość stanu, która zostaje powiązana z komponentem. Gdy ta wartość stanu jest aktualizowana, React ponownie wykonuje kod tego komponentu.
# 4.	Jakie wartości udostępnia haczyk useState()?
Haczyk useState() zwraca tablicę z dwoma elementami:
•	pierwszym elementem jest obecna wartość stanu,
•	drugim elementem jest funkcja, którą należy wywołać, aby zaktualizować wartość stanu.

# 5.	Ile wartości stanu można zarejestrować dla jednego komponentu?
Dowolnie dużo.
# 6.	Czy stan wpływa na komponenty inne niż ten, w którym go zarejestrowano?
Tak. Gdy kod komponentu jest ponownie wykonywany w wyniku zmiany stanu, React ponownie wykonuje także kod wszystkich komponentów zagnieżdżonych (ponieważ ponownie parsuje i wykonuje cały kod JSX).
# 7.	Jak należy aktualizować stan, jeśli nowy stan zależy od wcześniejszego?
W takich sytuacjach należy przekazać funkcję do funkcji aktualizującej stan. React automatycznie uruchomi przekazaną funkcję i przekaże do niej wcześniejszą wartość stanu. Dlatego przekazana funkcja powinna akceptować parametr i zwracać zaktualizowaną wartość, która może zależeć od tego parametru (czyli od wcześniejszej wartości stanu).
# 8.	Jak można współdzielić stan między wieloma komponentami?
Stan można „przenieść w górę” do wspólnego komponentu nadrzędnego. Ponieważ komponenty zagnieżdżone są ponownie przetwarzane razem z komponentem nadrzędnym, który używa tego stanu, także zostaną zaktualizowane.
