UNPKG

@antv/f2

Version:

Charts for mobile visualization.

50 lines (49 loc) 1.77 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2")); var _children = _interopRequireDefault(require("../children")); // 主要是把function节点,全部转换成string标签节点 function renderJSXElement(element, context, updater) { if (!element) return element; var _element = element, type = _element.type, key = _element.key, ref = _element.ref, props = _element.props, _element$_cache = _element._cache, _cache = _element$_cache === void 0 ? {} : _element$_cache; // render children first var children = _children.default.map(props.children, function (child) { return renderJSXElement(child, context, updater); }); element = { type: type, key: key, ref: ref, _cache: _cache, props: (0, _objectSpread2.default)((0, _objectSpread2.default)({}, props), {}, { children: children }) }; if (typeof type === 'function') { // @ts-ignore var newElement = type(element.props, context, updater); if (!newElement) return newElement; // recursive render until type is string return renderJSXElement((0, _objectSpread2.default)((0, _objectSpread2.default)({}, newElement), {}, { // 保留原始的key和ref key: key !== undefined ? key : newElement.key, ref: ref !== undefined ? ref : newElement.ref }), context, updater); } // return element if type is string return element; } var _default = function _default(element, context, updater) { return renderJSXElement(element, context, updater); }; exports.default = _default;