是否有遍历虚拟Dom的方法?我通常只需要一个结构即可让我拥有/看到孩子的父母关系:
FormTitleWrapper: { key: "FormTitleWrapper",
children: { FormTitle : { key:"FormTitle", parent: { key: "FormTitleWrapper", /* reference back to the parent */ } },
parent: { key ... }
}
我可以通过递归包装了该组件的所有子组件来构建这样的结构,但这仅适用于文件中的Elements:
// Form.jsx
return(
<BuildTree>
// will be visible
<FormTitleWrapper>
<FormTitle>Title 1</FormTitle>
</FormTitleWrapper>
// will not be visible
<Select>{AllOptions.map(...)}</Select>
// will not be visible
<TextInput></TextInput>
</BuildTree>
)
// TextInput.jsx
// none are visible to Form.jsx
return (<Parent><Child></Child></Parent>)
我当时使用的是React元素的props.children
,没有找到获取父母/孩子关系的另一种方法。
现在,我看到2种可能的解决方案,其中1种是包装子级,然后每当react加载子级包装时,相应地更新树。这样做的问题是,它需要对组件的每次更新进行区分,以确保树是最新的,并且我不想重新执行已由react完成的任务。
第二个选项是加载香草dom并以这种方式获取孩子/父母关系。我不确定这是否有效,这就是为什么我尝试通过react做第一种方法的原因。
第三个选择是我缺少明显的东西:)