2015-10-20 216 views
1

我有一個骨幹文件,其內部,我用React.renderComponent呈現陣營成分(定時器)。但是,在反應組件中,我有一個狀態調用計數器。我想從骨幹文件中獲取該組件的狀態。雖然我將props.model傳遞給Timer,但我可以在Timer中修改這些道具,但這會使props.model中的數據持久化,這是我不想做的。訪問陣營組件的狀態非內陣營文件

由於定時器不是一個陣營組件的孩子,我無法用裁判來訪問Timer.stat。那麼有沒有辦法讓Timer的狀態在它的父類中?

非常感謝!

+0

有陣營組件使一個AJAX請求 –

回答

1

國不打算是從組件外讀取或拉的查詢訪問。國家對組件本身及其子項是私有的。

如果您需要訪問的變量,你有兩個選擇:

  • 充分利用反應組件發出一些變化事件,每次狀態的改變,別人瞭解新的國家
  • 跟蹤的它在反應組分之外並將其作爲支柱傳遞給組分本身。
  • (髒溶液:不在家嘗試):讓反應部件把特定狀態變量的HTML代碼的數據屬性中被渲染,例如<div data-foo={this.state.foo}>然後從DOM讀取該屬性。在大多數情況下,如果狀態發生變化,反應總是重新呈現,所以您的屬性總是與狀態同步。

如果一切都失敗了真的只能用最後的選擇,因爲逃跑。因爲它違背了反應的設計原則。