我们说我有一个标识为14
的React节点。我想检查此节点是否是树中标识为2
的另一个节点的子节点。它不一定需要是一个直接的孩子,14
可以嵌套在其他几个节点中,但它最终是树中2
的孩子, 2
是它的祖先。
有没有内置功能呢?
修改
我在我的应用中渲染了几个ScrollView
,我希望它们能够自动处理它们包含的TextInput
个。我希望能够检查特定TextView
是否包含在一个ScrollView
中。
答案 0 :(得分:1)
您可以使用UIManager来验证一个节点是否是另一节点的后代。
import { UIManager } from 'react-native'
UIManager.viewIsDescendantOf(targetNodeId, parentNodeId, (isDescendantOf) => {
console.log(isDescendantOf)
})
答案 1 :(得分:0)
关于问题的上下文,我建议将context添加到包含scrollview的组件中,并在包含输入的组件中获取上下文。在那里,您可以将传递的回调绑定到输入。
答案 2 :(得分:0)
我知道这是一个老帖子,但我目前正在努力实现类似的目标。
您可以在 ReactNativeComponentTree (react-native / Libraries / Renderer / src / renderers / native /)中找到函数 getInstanceFromNode 。它返回附加到节点ID的组件。
它有一个“ _hostParent ”变量,您可以在其中获得整个组件树。