我对HTML节点有疑问。 在NavBar内部,我有一个来自materializecss的下拉列表。
要获取该元素,我使用了createCallback钩子,因为在DOM更新之后,我需要抓住该节点。
(useEffect无效,因为有时节点为空)
const nodeRef = useCallback(node => {
if (node !== null) {
M.Dropdown.init(node);
}
}, []);
这将初始化元素,然后我将其称为节点:
<div
...
ref={nodeRef}
data-target="dropdown1"
>
问题是:
我对内部具有NODE的组件具有可见性条件,如下所示:
{visible && <Component />}
当我更改VISIBLE值(在其他地方分派了一些动作,我使用的是上下文API)时,React会在UnorderedList上给我一个错误...,然后:
DOMException: "Node was not found"
可能他正在尝试更新状态,但该节点不再存在,并且已被记录下来?
如何卸载NODE,然后隐藏整个组件?
非常感谢!。