在我的React/Redux應用程序中,我經常面臨的問題是實現應該在整個應用程序中使用的狀態組件。 讓我們以一個簡單的彈出組件作爲一個開放/關閉狀態的例子,它可以在任何頁面中重用。 這裏是我發現了兩個可能的方法:可重複使用的react-redux容器組件
使用
setState
和「本地」減速機(我用recompose.withReducer這只是語法糖陣營的本地setState
)來管理其狀態。它看起來很容易且可重用,直到您需要在頁面的其他部分更改組件的狀態(在大小寫的情況下關閉彈出窗口)。你不能只是調用一些redux動作來改變狀態。將組件的狀態保存在Redux存儲中。使用這種方法,我們可以在組件樹的任何位置調用
closePopupAction({ id })
來更改它的狀態。「但是,我們需要以某種方式在組件裝入時將其reducer(我想保留在彈出文件夾中)放到根reducer上並刪除它當組件被卸載時。另外,我們可以在頁面中顯示多個彈出窗口,並且每個窗口都有自己的狀態。
有沒有人遇到類似的問題?
我不確定你在問什麼。你問問哪種解決方案比另一種更好? – wuct
兩種方式都不起作用。所以我正在尋找其他的東西 –
你能詳細說說你想達到什麼嗎?我相信這兩種方式都是有效的。在'recompose'情況下,如果你想在其他子樹中調用'setState',你可以用'()'提升到更高的節點。在'redux'情況下,除非狀態非常大,否則不需要刪除reducer。 – wuct