2016-01-10 28 views
76

使用redux時是否曾經使用過this.setState()?或者你應該總是調度行動,並依靠道具?在使用redux時你是否曾經使用this.setState()?

+0

讓某些組件具有狀態沒有任何問題。 – zerkms

+2

這完全取決於國家在哪裏使用。把redux店看作是全球性的。任何不需要成爲全球的東西都可以對組件及其子項保持私有。 – azium

回答

98

setState的清除用途將用於具有本地顯示狀態但與全局應用程序無關的UI組件。例如,表示特定下拉菜單是否被主動顯示的布爾值不需要處於全局狀態,因此可以更方便地通過菜單組件的狀態進行控制。

其他示例可能包括分層結構的手風琴顯示中的線條的合攏/展開狀態。或者可能是選項卡導航中當前選定的選項卡。但是,在這兩個示例中,您仍可能選擇全局處理UI狀態。例如,如果您希望在瀏覽器存儲中保留展開/摺疊狀態,以便通過頁面刷新來保留它,則這將是必需的。

在實踐中,通常最容易實現具有本地狀態的UI元素,並根據需要將它們重構爲全局狀態。

+16

爲了跟上這一點,相關的Redux FAQ條目強調**使用'setState'完全正確**:http://redux.js.org/docs/faq/OrganizingState.html#organizing-state-only -redux-state – markerikson

+0

如果您要切換或使用服務器端渲染,我認爲您應該始終使用Redux – neaumusic

相關問題