JSDOM 中的 MutationObserver 失败,因为参数 1 不是 Node 类型

问题描述 投票:0回答:1
javascript jestjs jsdom mutation-observers
1个回答
0
投票
),另一个是由

new JSDOM()

 全局注入的。
调用
jest-environment-jsdom
时,使用了JSDOM的隐式全局实例。然而,传入的所有对象都是由本地实例生成的。这是 JSDOM 不允许的——请参阅关于

此问题

的讨论。因此,实际上,问题不在于参数不是

new MutationObserver()
,而在于它是来自错误 DOM 的 Node
要解决此问题,请确保所使用的 
Node
来自与 DOM 节点相同的 JSDOM 实例。这可以通过将

MutationObserver

替换为

new MutationObserver()
来实现。
这样做的缺点是你现在必须传递 JSDOM(或者至少是它的 
new dom.window.MutationObserver()
)。或者,您可以在任何地方使用全局实例并通过其他方法设置其 HTML(例如

window

document.write()
)。不过,其可行性将取决于确切的用例。
    

© www.soinside.com 2019 - 2024. All rights reserved.