Чи потрібно коли-небудь використовувати this.setState () при використанні функції redux?


111

Чи варто коли-небудь використовувати this.setState()під час використання редуксу? Або ви завжди повинні диспетчерувати дії та покладатися на реквізит?


1
Немає нічого поганого в наявності деяких компонентів із станом.
zerkms

3
Це повністю залежить від того, де використовується держава. Подумайте про магазини скорочення як про глобальні. Все, що не повинно бути глобальним, може залишатися приватним компонентом та його дітьми.
азій

Відповіді:


139

Чітке використання setStateбуде для компонентів інтерфейсу, які мають стан локального відображення, але не мають значення для глобальної програми. Наприклад, булева інформація, яка відображає, чи активно відображається певне меню, не потрібно знаходитись у глобальному стані, тому це зручніше керувати станом компонента меню.

Інші приклади можуть включати стан згортання / розширення ліній у гармонійному відображенні ієрархії. Або, можливо, вибрану в даний час вкладку в навігації по вкладках. Однак в обох цих прикладах ви все ще можете обрати стан UI в усьому світі. Наприклад, це було б необхідно, якщо ви хочете зберегти стан розширення / згортання у сховищі браузера, щоб воно було збережене при оновленні сторінки.

На практиці, як правило, найпростіше реалізувати такі елементи інтерфейсу з локальним станом та переробити їх у глобальний стан за необхідності.


23
Щоб продовжити це, відповідний запис Redux FAQ підкреслює, що використання setStateповністю чудово : redux.js.org/docs/faq/…
markerikson

2
Якщо ви збираєтесь передавати або використовувати рендеринг на стороні сервера, я думаю, ви завжди повинні використовувати Redux
неаумузичний

Посилання поширених питань FAQ оновлено до redux.js.org/faq/organizing-state
AnandShanbhag
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.