2016-02-19 73 views
1

我需要保留各種組件onChange事件的狀態更改。因此我將它們保存在它們的狀態中,因爲直接存儲可能會導致重新渲染和損害用戶體驗,甚至導致一些錯誤。我現在需要在用戶點擊某個按鈕並將這些狀態值壓入redux(這一點很簡單)時獲取所有這些組件的狀態,但是如何訪問將更新redux狀態的操作中的所有組件狀態?因爲我需要單獨訪問它們。從REDX動作訪問組件狀態

+1

「爲節省直奔終極版將導致大量重新渲染和損害用戶體驗,甚至有時會引發錯誤「。這似乎是要解決的真正問題,因爲這絕對不是我的經驗。 – rossipedia

回答

4

首先,您應該檢查應用程序的整個工作流程,因爲將字段保存爲REDX應該不會造成重新渲染的巨大開銷。

你也應該瞭解哪些行動(從官方文檔的終極版):

操作是從 應用程序發送數據到您的商店的信息的有效載荷。他們是商店唯一的信息來源 。您使用store.dispatch()將它們發送到商店。

因此,動作應包含其內部所有需要的數據。

如果您選擇爲整個表單啓動一個動作,則可以採用此方法(聯繫表單就是一個很好的示例,因爲只有在完全填充時纔會發送該表單)。

首先,當你做按鈕點擊時,你應該調用父component的功能(它包含所有需要的字段並知道如何收集需要的日期)。
父組件的功能可以將所有字段值存儲在它自己的state中,或收集子componentsstates
然後,你將能夠從這個功能派遣與所需的PARAMS行動

(通常動作調度員從container傳遞)在官方網站上,你可以找到一個很好的解釋:UsageWithReact