繁体   English   中英

删除回溯组件的最佳方法是什么?

[英]Best way to remove a backdraft component?

我有一个显示消息的 backdraftjs 组件。 当您单击它时,我希望它远离 go。 我应该如何使它远离 go?

class QuickMessage extends Component {
  bdElements() {
    return e.div(
      {className: 'quick_message', bdAdvise: {click: 'dismissMe'}}, 
      this.kwargs.message
    );
  }

  dismissMe() {
    // what should go here ? should it just remove the dom element or
    // will that leave code hanging around?
  }
}

在#someDomId 中显示错误的方法:

reportError = (errmsg) => render(QuickMessage, {message: errmsg}, "someDomId");

你应该调用destroy

dismissMe() {
    this.destroy();
}

文档说:

销毁实例拥有的所有资源和引用,从而使实例随时可用于垃圾回收。 具体而言,完成了以下工作:

  • 取消渲染实例(如果已渲染)并销毁在渲染组件期间获取的所有资源(DOM 节点、事件连接等)。
  • 销毁实例属性上的所有观察者。
  • 销毁实例事件的所有处理程序。
  • 销毁所有发布到拥有的 Destroyable 实例。
  • 删除 this.kwargs。

这是您在清理方面可以预期的最多情况。 下次您调用reportError时,您的组件的新实例将被创建。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM