有谁知道IE11中为什么element.contains
未定义? According to MDN,IE中支持此功能,但当我尝试从React DOM ref使用它时,我收到错误。这是我用来调用React代码的一个粗略示例:
class SomeComponent extends React.Component {
constructor(props) {
// stuff
}
componentDidMount() {
window.addEventListener('mousedown', e => {
if (this.list.contains(e.target)) {
// stuff
}
}.bind(this));
}
render() {
return (
<ul ref={c => { this.list = c }}>
// stuff
</ul>
);
}
}
在IE 11中,此代码生成以下错误:
有谁知道为什么会这样?
更新
奇怪的是,我发现this.dropdown
引用了React组件,而this.dropdown.dropdown
指向了HTML元素。所以this.dropdown.dropdown.contains
指的是正确的方法!所以我想,这是要解释的事情......