2016-06-01 77 views
1

比方說,我有一個ID爲14的React節點。我想檢查這個節點是否是另一個節點的子節點,其樹號爲2。它不一定需要是一個直接的孩子,14可以嵌套在其他幾個節點中,但最終,樹中的2的孩子和2是它的祖先。檢查一個節點是否是React/React Native中另一個節點的父節點

是否有任何內置函數來做到這一點?

編輯

我在我的應用程序呈現幾個ScrollView秒,我希望他們能夠自動處理它們所包含的TextInput秒。我希望能夠檢查一個ScrollView是否包含特定的TextView

+0

你可以添加一些上下文嗎?你爲什麼想這樣做? –

+0

完成@DanielSchmidt – amb

+0

寫了一個答案,如果您需要一些代碼示例,請讓我知道 –

回答

0

關於您的問題的上下文,我會建議將context添加到包含scrollview的組件中,並在包含輸入的組件中獲取上下文。在那裏你可以將傳遞的回調綁定到輸入。

+0

這很有趣,但是我需要訪問節點的元素以獲取其上下文。 'findNodeHandle'返回一個不透明的節點號,我正在努力尋找如何用這個數字來獲取元素。 – amb

+0

好的,我們都指的是不同的上下文概念。我對上下文的概念是React機制,它允許您指定類似於prop的內容,而不需要通過組件層次結構進行傳播。我的第一個問題是你的意思是「元素上下文」,我的第二個問題是,爲什麼你不使用ref屬性並將其綁定到傳遞函數,以獲得節點「dom」元素? –

+0

我的意思是上下文正是你所描述的。問題是我使用'TextInput.State.currentlyFocusedField'來獲取節點的'標籤'。這個'tag'只是一個數字,而不是一個React組件(我稱之爲元素,是我的錯),因此我無法訪問上下文。 – amb

0

我知道這是一箇舊帖子,但我目前正在嘗試實現類似的東西。

有功能getInstanceFromNode,你可以在ReactNativeComponentTree(反應本地/庫/渲染/ src目錄/渲染/本地/)找到。它返回附加到節點ID的組件。

它有一個「_hostParent」變量,其中你得到整個組件樹。

相關問題