當在組件層次結構中彼此距離很遠的兩個元素之間傳遞數據時,通過道具傳遞數據可能非常乏味。在這些用例中,我使用Redux僅僅是因爲它跟蹤大量組件時的情況。使用閉包來封裝React組件的狀態
我在一個小項目中所做的就是使用閉包來封裝狀態並導出該變量並在其他地方使用它。我覺得這是一個反模式,但它確實有效。
它的工作方式是聲明一些將在組件內被修改的變量。這個變量是從其他地方導入並從其他地方消耗的。
這裏是一個小樣本與我在做什麼(假裝有一個大的組件層次結構):https://codesandbox.io/s/2R9RvYkN1
所以我的問題是:有沒有更好的方法來達到同樣的效果?我們是否應該爲這些用例使用Flux實現?只是通過大量層次的組件傳遞道具是否可行?
您應該在SO帖子中分享代碼模式並附上一個具體示例。 – vijayst
如果您使用Redux,則不需要設置選定的顏色。 'ColorSelector'會派發一個動作來更新狀態,所選的顏色會自動更新而不需要用戶點擊一個按鈕。 – adrice727