我有一个组件(Comp
),我已经在它的参数中添加了一个useRef
(compRef
)。
作为主要的useEffect的一部分,我正在设置这个组件的数据。
这个数据包含一个字符串数组,而Comp
将所有这些字符串显示为。
<Comp ref={compRef}>
<input type="text"/>
</Comp>
并且
data = ["HIDDEN", "data1", "data2", "data3", "data4"]
useEffect(() => {
compRef.current.refElement.value = data;
}, []);
现在Comp
的代码将如下所示 -
<Comp>
<generatedWrap> // should be hidden
<input value="HIDDEN" />
</generatedWrap>
<generatedWrap>
<input value="data1" />
</generatedWrap>
<generatedWrap>
<input value="data2" />
</generatedWrap>
<generatedWrap>
<input value="data3" />
</generatedWrap>
<generatedWrap>
<input value="data4" />
</generatedWrap>
</Comp>
我希望您使用“隐藏”命令来隐藏第一个输入框 -
compRef.current.refElement.children[0].style.display = "none";
问题在于,使用每种方法(useEffect)在屏幕挂载期间,子元素是空的。只有在屏幕准备就绪后才能工作(例如通过
<button>
触发)。我需要一种方法,在视图挂载之前跟踪ref的子元素数,一旦大于1,就触发
hide
命令。我该怎么做?
Comp
是否有任何特殊功能? - Ernesto StifanoComp
不支持删除最后一个输入,所以我在开头放了一个虚拟输入,计划将其隐藏,这样我就可以删除最后一个(/第二个)输入。 - Dvi N<input type="text"/>
吗?所以,Comp
将其子元素呈现为生成的输入框的兄弟节点? - Ernesto Stifano