fastlion-amis
Version:
一种MIS页面生成工具
31 lines (30 loc) • 1.39 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
var tslib_1 = require("tslib");
// 错误边界
var react_1 = (0, tslib_1.__importDefault)(require("react"));
var ErrorBoundary = /** @class */ (function (_super) {
(0, tslib_1.__extends)(ErrorBoundary, _super);
function ErrorBoundary(props) {
var _this = _super.call(this, props) || this;
_this.state = { hasError: false };
return _this;
}
// 此生命周期会在后代组件抛出错误后被调用。 它将抛出的错误作为参数,并返回一个值以更新 state
ErrorBoundary.getDerivedStateFromError = function (error) {
console.error(error);
// 更新 state 使下一次渲染能够显示降级后的 UI
return { hasError: true };
};
ErrorBoundary.prototype.render = function () {
var _a;
if (this.state.hasError) {
// 你可以自定义降级后的 UI 并渲染
return react_1.default.createElement("h1", null, (_a = this.props.errorText) !== null && _a !== void 0 ? _a : '组件错误');
}
return (react_1.default.createElement(react_1.default.Fragment, null, this.props.children));
};
return ErrorBoundary;
}(react_1.default.PureComponent));
exports.default = ErrorBoundary;
//# sourceMappingURL=./components/ErrorBound.js.map
;