2017-10-09 47 views
5

我在我的應用程序中實現了redux。我的場景是從一個組件導航到另一個組件時,我正在更新redux狀態。所以當我回到以前的組件時,獲取最後的redux狀態數據。React-Native:什麼時候進入應用狀態並在應用中反應狀態?

預期結果:

當我回來前一個組件,需要在相同的狀態。我不想要最近的更改數據。

Ex: Marie ->April, when I go back, Marie <- April 

實際結果:

它的更新最近的變化數據。

Ex: Marie ->April, when I go back, April <- April 

我該如何爲此編寫應用程序結構?這裏需要redux嗎?或者我應該在導航時作爲params與組件狀態一起管理?

回答

2

我不確定我的答案是否是正確的實施方式。但目前,我做這樣的:(:this.state,一流的領域,全局對象或終極版EX)

組件的State可通過多個位置分散。

我從你的問題理解什麼是你正在處理的同時2個要求:需要組件的狀態的

  • 部分被保存下來,當 導航背部和福特。
  • 組件狀態的另一部分需要與 其他組件(保持不變)在導航返回和福特時共享。

我不知道這兩種要求都有一個解決方案。如果我必須這樣做,我將設計組件的狀態,使其分散或散佈在不同的位置,每個位置都用於自己的目的。基本上,我用2個不同的解決方案:它需要保留的將被放置在 this.state狀態

  1. 部分。
  2. 需要共享的部分狀態將被放入Redux

對於此解決方案的工作,我不使用react-redux,只有redux。在redux中有一種叫做store.getState()的方法,它將返回單個Redux狀態對象。我使store只讀訪問全局可訪問,並使用它來呈現需要共享數據的組件的某些部分。

+0

這究竟是什麼在我的腦子很亂。感謝您的整潔乾淨的解釋。現在我完全清除了。再次感謝。 – Balasubramanian

+0

我也不確定,但我遵循上面的概念。我們不應該把所有數據都放在一起。非常感謝。 –

1

如果數據在多個類中需要,那麼使用redux狀態,否則使用react狀態,它取決於組件的生命週期。 由於redux狀態是全局的,並且僅在定義它的類中處於活動狀態。 根據您的情況,您可以對第一個組件使用redux狀態,因爲您會回覆它,並且希望Marie作爲您的數據,並使用第二個組件的反應狀態,因爲您希望將April作爲您的數據。

2

很高興知道在什麼時候使用。

時間

的不同片段的狀態都持續了不同的時間量。我鬆散歸類時間到這些組:

短期:將在您的應用程序迅速改變數據 - 本地店這種類型的數據作出反應狀態

中期:數據很可能會導致堅持在您的應用程序一段時間 - 存儲狀態的終極版店內

長期:應該持續多次訪問您的網站之間數據 - 存儲在別處可能給數據庫服務器檢查或到本地存儲

此處獲得更多信息:React State vs Redux State When and Why?