UNPKG

doly

Version:
73 lines (60 loc) 2.21 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn")); var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf")); var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits")); var _react = _interopRequireDefault(require("react")); var _reactDom = require("react-dom"); // react 16 before var Dialog = /*#__PURE__*/ function (_React$Component) { (0, _inherits2.default)(Dialog, _React$Component); function Dialog() { (0, _classCallCheck2.default)(this, Dialog); return (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(Dialog).apply(this, arguments)); } (0, _createClass2.default)(Dialog, [{ key: "render", value: function render() { return null; } }, { key: "componentDidMount", value: function componentDidMount() { var doc = window.document; this.node = doc.createElement('div'); doc.body.appendChild(this.node); this.renderPortal(this.props); } }, { key: "componentDidUpdate", value: function componentDidUpdate() { this.renderPortal(this.props); } }, { key: "componentWillUnmount", value: function componentWillUnmount() { (0, _reactDom.unmountComponentAtNode)(this.node); window.document.body.removeChild(this.node); } }, { key: "renderPortal", value: function renderPortal(props) { (0, _reactDom.unstable_renderSubtreeIntoContainer)(this, //代表当前组件 _react.default.createElement("div", { class: "dialog" }, props.children), // 塞进传送门的JSX this.node // 传送门另一端的DOM node ); } }]); return Dialog; }(_react.default.Component); exports.default = Dialog;