IE中未反映React样式道具,getBoundingClientRect没有x和y

时间:2019-03-27 09:57:32

标签: reactjs internet-explorer react-dom inline-styles getboundingclientrect

我用一些内联样式创建了React.Portal,这些样式在Internet Explorer中根本无法呈现。

这是我的组件。

  const {
    x, y, height, width,
  } = popupAnchorRef.getBoundingClientRect();

  return ReactDOM.createPortal(
    <div
      ref={popupRef}
    >
      <div
        role="presentation"
        className={popupAnchorStyle}
        style={{
          left: x,
          top: topPositionAnchor,
        }}
      />
      <div
        className={popupStyle}
        style={styleForPopupPosition}
      >
        <PopupContents alias={alias} handleClosePopup={handleClosePopup} />
      </div>
    </div>
    ,
    document.body,
  );
};

我在HTML <meta http-equiv="X-UA-Compatible" content="IE=edge">

中有此meta

注意:内联样式可在其他任何组件上使用。

1 个答案:

答案 0 :(得分:0)

好的,问题出在getBoundingClientRect

  const {
    x, y, height, width,
  } = popupAnchorRef.getBoundingClientRect();

Internet Explorer没有xy属性,它们具有leftright