问题 #2940💬 已回答提出于 2020年8月6日作者 jcamejo0 个反应

在Components.js中执行的 RemoveChildren 带有未定义组件

快速解答作者 artf

谢谢你,胡安,一切都好,希望你也一样:)如果移除的参数是错误的,直接返回其实可以解决,但也许这样太不靠谱了,我应该找别的解决办法,而不是让组件删除父节点。 严格来说,“removeChildren”不应该被称为“没有”“移除”,所以如果这个条件能解决你的问题,我觉得它很好。 我也觉得你的情况可能被别人用了

阅读下方完整回答 ↓

问题

你好,@artf久不见,希望你和你亲密的朋友一切顺利。

有个小案子,我想先问问你怎么看,然后再提出请求。

我有一个自定义链接组件包裹在一个 li 标签上,这个链接有一个事件,当它被移除时会移除它的父 li

如果我直接删除链接,一切正常,但如果我移除包含 li 和 link 组件的外部父节点,Components.js 中的 removeChildren 会被执行为 undeed 组件,导致出现此错误

未捕获类型错误:无法访问属性“getId”,已移除的未定义
    移除儿童 Components.js:30

这是因为在 removeChildren 获得参数之前,另一个回调(我自定义的那个回调)中对象被删除了。

如果移除的参数是错误的,直接返回可以解决,但可能太黑客化了,我应该找别的解决方案,而不是让组件删除父项。

  removeChildren(removed, coll, opts = {}) {
    如果(!移除) {
      返回;
    }

你怎么看?

谢谢!

回答(1)

artf2020年8月26日

谢谢你,胡安,一切都好,希望你也一样:)

如果移除的参数是错误的,直接返回其实可以解决,但也许这样太不靠谱了,我应该找别的解决办法,而不是让组件删除父节点。

严格来说,“removeChildren”不应该被称为“没有”“移除”,所以如果这个条件能解决你的问题,我觉得它很好。 我也觉得你的情况可能被别人用了

相关问答

通过相似的问题讨论继续研究。

与此问题匹配的付费插件

根据问题关键词和标签相关性精选,助你更快交付。

查看全部插件

正在加载付费插件推荐……

免费方案

在以下平台查看开源 GrapesJS 插件: GitHub 或在我们的免费目录中快速搜索。

浏览免费插件 →
高级方案

高级插件提供支持、定期更新和生产就绪的功能——为你节省数天的集成工作。

浏览高级插件 →

浏览插件分类

直接跳转到市场上的插件分类页面。