2017-09-02 27 views
0

我正在寫一個react-redux應用程序,它有4條路線。我正在使用react-router來導航到不同的路由。我的問題在於,是否建議刪除導航到不同路由時的重複狀態?在react-redux應用程序中導航到不同路線時刪除redux狀態?

+1

我會假設Redux代表您的應用程序狀態_all_將包括所有不同的路線。所以不,不要刪除狀態。這是沒有意義的。 – Andy

+0

是的redux狀態存儲所有路線的所有數據。我正在考慮只刪除我目前不在的路由所需的應用程序狀態的那部分。 –

+0

考慮到我通過在componentDidMount生命週期方法上調用API服務器來加載數據這一事實,因此即使我不刪除該路由的重複狀態,我也不確定這將如何幫助我? –

回答

1

一般來說,我不會說在過渡到應用中的其他路由時需要刪除現有狀態。如果你回到那個部分,你可以更快地顯示數據。您可能需要考慮是否有需要在您回來時刷新它。

+0

由於我通過調用componentDidMount生命週期方法上的API服務器來加載數據,因此我不確定即使我不刪除REDX狀態,該怎麼去幫助我? –

+0

如果數據已經存在,那麼您可以跳過該呼叫,如果這符合您的使用案例 –

+0

是的,這是有道理的。感謝兄弟:) –

1

正如其他人在這裏所說的,即使你沒有在當前路線中使用它,也沒有理由從redux中刪除狀態。

你說你正在加載你的狀態componentDidMount。每次路由切換時是否要重新加載服務器數據?因爲如果沒有,您可以添加一個條件到您的componentDidMount以僅從服務器重新加載數據,如果尚未加載。

+0

實際上,我不希望每次路由切換時都從服務器重新加載數據,因爲我在路由上啓用了自動刷新,這將確保從服務器獲取最新的更新數據。唯一的技巧就是要知道從最後一次卸載時開始的時間,以便我可以查詢在服務器間隔期間發生的任何更改(卸載重新裝入)。 –

+0

只是一個建議。創建一個unmountedTimestamps reducer並在'''componentWillUnmount'''上發佈一個包含路由名稱和當前時間戳的動作 –

+0

這就是很酷的建議,愛你bro:愛情stackoverflow(y) –

相關問題