2016-01-10 8 views
76

Czy kiedykolwiek używasz this.setState() podczas korzystania z redux? A może zawsze wysyłasz akcje i polegasz na rekwizytach?Czy kiedykolwiek używałbyś this.setState() podczas korzystania z redux?

+0

Nie ma nic złego w posiadaniu niektórych komponentów ze stanem. – zerkms

+2

To całkowicie zależy od tego, gdzie używany jest stan. Pomyśl o sklepach redux jako o globalnych. Wszystko, co nie musi być globalne, może pozostać prywatne dla komponentu i jego dzieci. – azium

Odpowiedz

98

Wyczyść zastosowania setState będzie dla składników interfejsu użytkownika, które mają lokalny stan wyświetlania, ale nie są istotne dla aplikacji globalnej. Na przykład wartość boolowska, która określa, czy określone menu rozwijane jest aktywnie wyświetlane, nie musi być w stanie globalnym, więc jest wygodniej kontrolowana przez stan komponentu menu.

Inne przykłady mogą obejmować zwijanie/rozwijanie stanu linii na ekranie akordeonu w hierarchii. Ewentualnie aktualnie wybrana zakładka w nawigacji po karcie. Jednak w obu tych przykładach użytkownik może nadal decydować się na globalne zarządzanie stanem interfejsu użytkownika. Na przykład będzie to konieczne, jeśli chcesz zachować stan rozwinięcia/zwinięcia w pamięci przeglądarki, aby został zachowany przez odświeżenie strony.

W praktyce zazwyczaj najłatwiej jest wdrożyć takie elementy interfejsu użytkownika z lokalnym stanem i w razie potrzeby przekształcić je w stan globalny.

+16

Aby się z tym zapoznać, odpowiedni wpis w FAQ dla Redux podkreśla, że ​​** użycie 'setState' jest całkowicie w porządku **: http://redux.js.org/docs/faq/OrganizingState.html#organizing- state-only -redux-state – markerikson

+0

Jeśli zamierzasz przeprowadzić przekazanie lub korzystać z renderowania po stronie serwera, zawsze powinieneś używać Redux – neaumusic

Powiązane problemy