当从IE 11中的React ref调用时,IE 11中的`node.contains`未定义

时间:2018-03-28 19:28:44

标签: javascript reactjs internet-explorer-11

有谁知道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中,此代码生成以下错误:

Object doesn't support property or method error

有谁知道为什么会这样?

更新

奇怪的是,我发现this.dropdown引用了React组件,而this.dropdown.dropdown指向了HTML元素。所以this.dropdown.dropdown.contains指的是正确的方法!所以我想,这是要解释的事情......

0 个答案:

没有答案