2017-09-07 33 views
1

由於性能方面的原因,我有一個子元素,其數據存儲在它的狀態並且只有它的狀態(而不是通過在道具中傳遞的回調傳遞給層次鏈)。反應:父模式初始化獲取子數據?

那麼在父元素中的一個動作指示我現在需要這些數據的時候,在孩子中獲取它的正確模式是什麼?

我是否使用refs並通過保存的引用調用child.fetchData()方法?

我是否更改一個prop標誌,導致孩子使用數據調用prop回調?

+1

你說「孩子用數據調用道具回調」,但你說「數據存儲在它的狀態並且只有它的狀態(而不是通過在道具中傳遞的回調傳遞給層級鏈)」 ...所以你需要這些數據在父母或不是? – kavun

+0

我需要父母在某個特定時間的數據,但出於性能方面的原因,我無法讓孩子的狀態在每次更改時不斷更新自己及其父母。所以我正在尋找一種模式,父母可以在需要時獲取孩子數據。 – Zarkoix

回答

1

我會

  1. 店都你的父母以外的數據和您的孩子(一個這樣的例子可能是一個終極版店,或者一些全球的「緩存」的對象)
  2. 創建的共享方法取上述數據(其中的一個例子可能是一個終極版動作)
  3. 確保你存儲的數據不可改變,這樣就可以了...
  4. 檢查,如果所取的數據在父的shouldComponentUpdate()發生了變化,孩子,打擊你的表現保留