我有一个React (hooks)组件在Accordion (<details>
元素)。
组件对可用的子元素的offsetWidth
做了一些假设,但由于手风琴关闭,组件不可见,并且这些Refs的offsetWidth为0。
我需要重新渲染组件,在手风琴打开后,组件本身变得可见。
我正在尝试将手风琴的状态(打开/关闭)传递给组件,以便在此更改时触发渲染,但是在浏览器绘制组件之前运行了useEffect,因此即使手风琴状态打开,宽度仍然为0。
你知道怎么解决这个问题吗?
实际上useEffect
是在组件重新渲染后调用的。所以这可能不是你的问题。
我建议使用状态动态添加类与display: none
和删除它。而不是将其宽度更改为0