'setStyle' 和 'setComponents' 选项参数未被考虑
问题
版本: 0.16.30 你能重现演示中的bug吗? [x] 是的 [ ] 不 繁殖步骤:打开控制台执行 'editor.setComponents('', {avoidStore: true});'执行 'editor.setStyle('', {avoidStore: true});'“存储......”日志依然存在(见附图) 预期的行为是什么? “选项”参数应被考虑。将“avoidStore”选项传给“true”,再传给“setStyle”和“setComponents”,应该能防止更新事件触发。 目前的行为是什么? “选项”参数未被考虑。传递“避免商店”选项无效,更新事件仍然会触发。 提出的解决方案: 很抱歉我之前在[PR](https://github.com/artf/grapesjs/pull/2872)(针对[本期](https://github.com/artf/grapesjs/issues/2856))时漏掉了这个,但似乎仍然存在两个问题:'opt' 对象不会传递到 ['clear'](https://github.com/artf/grapesjs/blob/dev/src/domcomponents/index.js#L561) 和 ['remove'](https://github.com/artf/grapesjs/blob/dev/src/domco...
回答(4)
谢谢@mcottret修复已经准备好,下次发布时会有修复
不幸的是,由于初始命名不当,“avoidStore” 是用来跳过 UndoManager 而不是存储😁的 好消息是,为了修复 #3189,我不得不引入新的“noCount”选项,这样可以跳过编辑器更改计数器,也不会触发存储。 这个修复也促使我正确更新了 handleChanges 中的签名,使用 CssComposer,但我还需要修正其他几种方法才能让整个系统正常工作(包括你提到的那些)。 所以,在下一个版本中,这个功能应该会像你预期的那样运行,配合新的“noCount”选项,我可能会开始使用新的“noUndo”选项(保留“避免商店”以避免任何破坏性更改)。 附言:一如既往,感谢你的帮助...
你好,@artf! 很抱歉重新提起这个问题,但“setStyle”问题似乎依然存在。 重新操作上述步骤,“存储......”当调用“setStyle”并使用“noCount”选项时,日志仍然显示。 我看到[已修复的“handleChanges”处理程序仍然使用“避免Store”选项](https://github.com/artf/grapesjs/blob/dev/src/css_composer/index.js#L130),但“避免Store”选项似乎也没用。 我没深入研究,所以没能找出问题持续的原因,如果你想让我帮忙,告诉我:) 但用“setComponents”就没问题了,非常感谢...
谢谢你举报,@mcottret。 未考虑'setStyle'和'setComponents'选项参数的问题似乎是竞态条件或状态管理时序问题。这通常发生在组件生命周期事件和DOM修改重叠时,导致状态不一致。 尝试什么: 添加setTimeout包装器以确保DOM已稳定: “JavaScript setTimeout(() => { 你在这里的行动 }, 0); 推荐的下一步步骤:** 如果还没测试过,请用最新的GrapesJS版本测试 提供最小可重复的示例(CodeSandbox)——这有助于团队更快识别根本原因 在报告中包含 GrapesJS 版本、浏览器和控制台错误
相关问答
通过相似的问题讨论继续研究。
问题 #6659
符号样式未同步
GrapesJS版本 [x] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? Firefox 145.0(64位) 可复制演示链接 https://jsfiddle.net/arturarseniev/ta19s6go/ 描述一下那个虫子 如何复现这个漏洞? 进入官...
问题 #3612
葡萄的滑块按钮和标签键都没有按预期工作
版本 0.17.19(grapesjs) 版本 0.1.5(grapesjs-lory-slider) 版本 1.0.6(grapesjs-tabs) 你能重现演示中的bug吗? 不 预期的行为是什么? 我应该能在点击前一、下一页按钮和标签名时,浏览不同的幻灯片和标签页。 详细...
问题 #5346
删除组件而不删除其对应样式
葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? 最新版本的Chrome浏览器 可复制演示链接 https://grapesjs.com/demo.html 描述一下那个虫子 如何复现这个漏洞? <img width=“1665” alt=“im...
问题 #6152
通过自定义代码添加的CSS在移除自定义代码组件后依然存在
葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? 任何 可复制演示链接 https://grapesjs.com/demo 描述一下那个虫子 如何复现这个漏洞?添加带有HTML + CSS的自定义代码组件删除自定义代码组件。 预期的行为是什么?...
与此问题匹配的付费插件
根据问题关键词和标签相关性精选,助你更快交付。
正在加载付费插件推荐……
相关教程
关于同一主题的深入指南。
教程
GrapesJS DevTools: A Developer Panel Inside Your Editor
If you've ever debugged GrapesJS with console.log(editor.getSelected()) and a dozen throwaway event listeners — this post is for you.
教程
How to Build a Production GrapesJS Editor: The Complete Walkthrough of Brief, Preset, Plugins, and Services
A complete walkthrough of building a production GrapesJS editor: how to choose a preset, pick plugins, and scope setup services without burning a sprint.
教程
Big Updates: TinyMCE 8 and Placeholder 2.0 for GrapesJS
In May we shipped major updates to two of our most popular GrapesJS plugins — TinyMCE Inline Text Editor and Placeholder.
浏览插件分类
直接跳转到市场上的插件分类页面。