我正在使用第三方RN組件。
我使用該組件,如:當孩子(第三方)組件狀態改變時如何更新父組件
<Component ref={comp => (this.comp = comp)} ...
該組件允許我通過訪問數據:
this.comp.state.height
這部分是我的組件的一部分,我的問題是
我需要採取一些行動當該第三方組件狀態改變時。
當它的狀態更新時,我的父組件無法檢測到此更改。
我該如何跟蹤這種變化(我無法更改第三方組件)?
我正在使用第三方RN組件。
我使用該組件,如:當孩子(第三方)組件狀態改變時如何更新父組件
<Component ref={comp => (this.comp = comp)} ...
該組件允許我通過訪問數據:
this.comp.state.height
這部分是我的組件的一部分,我的問題是
我需要採取一些行動當該第三方組件狀態改變時。
當它的狀態更新時,我的父組件無法檢測到此更改。
我該如何跟蹤這種變化(我無法更改第三方組件)?
that component's props之一是onMessage
,它是函數的類型。
假設是你要跟蹤的變化,你可以這樣做:
<Component
ref={comp => (this.comp = comp)}
onMessage={this.onMessage.bind(this)}
...
然後您的自定義組件的類內從你的渲染,第三方之一,包括這樣的功能:
onMessage(data) {
// data here is what was sent from window.WebViewBridge.send
}
是的,我看到了,但從某種原因onMessage從來沒有被調用。這就是爲什麼我問我是否可以檢測到它的狀態變化,因爲this.comp.state.height只是更新而已,onMessage永遠不會被調用。 – 1110
'react-native-display-html'有它自己的[內部'onMessage'函數](https://github.com/archriss/react-native-display-html/blob/master/index.js#L152)當底層WebViewBridge組件調用它的onBridgeMessage prop時被調用。如果在第一行添加'console.warn(JSON.stringify(event,null,2))'onMessage'?這樣,您可以確定是否存在具有錯誤的react-native-display-html或它使用的「react-native-webview-bridge」。 –
我試圖記錄它,它從來沒有被調用 – 1110
14,您使用的是哪個第三方組件?它是否有任何文檔化的道具,比如'onSomeValueUpdated',這樣當它的內部值(你有興趣跟蹤)發生變化時,它會調用'this.props.onSomeValueUpdated'? –
我使用這個組件:https://github.com/archriss/react-native-display-html – 1110