PageKit — 可自托管的 GrapesJS 建站工具,附完整源码。 获取抢先体验

问题 #5175💬 已回答提出于 2023年6月10日作者 krishnaeverestengineering0 个反应

移动方法没有按预期工作

快速解答作者 krishnaeverestengineering

解决方法:https://github.com/GrapesJS/grapesjs/pull/5176

阅读下方完整回答 ↓

问题

GrapesJS 版本 [X] 我确认使用最新版本 GrapesJS 你用的是什么浏览器? 铬 可复制演示链接 https://codesandbox.io/s/adoring-margulis-873kdv 描述一下那个虫子 背景 移动组件的方法没有按预期工作。 这段代码没有按预期工作。 这段代码应该可以正常工作。当 sameParent 是 false 且目标索引是 1 时,比如它不会移动到 0 对 1 的位置行为准则 [X] 我同意遵守本项目的行为准则

回答(4)

artf• 2023年6月15日

谢谢@krishnaeverestengineering,但这实际上是将组件移入同父节点时的预期行为。这是因为“at”还应考虑组件本身的索引。

- 指数:0
{ 组件1 }
- 指数:1
{ 组件2 }
- 指数:2

所以,如果你尝试将“组件1”移到索引0或1,什么都不会发生。如果你需要把它移到“组件2”以下,你必须标注索引2

krishnaeverestengineering• 2023年6月15日

谢谢@krishnaeverestengineering,但这实际上是将组件移入同一父节点时的预期行为。这是因为“at”还应考虑组件本身的索引。

- 指数:0
{ Component 1 }
- 指数:1
{ Component 2 }
- 指数:2

所以,如果你尝试将“组件1”移到索引0或1,什么都不会发生。如果你需要把它移到“组件2”以下,你必须标注索引2

但我不太理解它的使用场景。通常在最后版本中,'at '应该算是索引。那怎么把组件从0移到索引1呢?

GJS Helper• 2026年5月17日

你已经发现了GrapesJS Component.prototype.move方法中的一个关键漏洞。当前的实现存在两个主要问题,导致组件放置错误,并且在某些情况下,组件根本无法移动,尤其是在同一父节点内移动时。 根本原因分析 有缺陷的sameIndex检查: 原始的sameIndex计算是index === at || index === at - 1。如果一个组件当前的索引比目标at索引少一个,则错误地标记为“同一索引”。例如,如果某个组件位于索引0,你试图将其移到索引1,index === at - 1(0 === 1 - 1)会被评估为true。这会导致sameIndex为true,如...

相关问答

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

问题 #6250

克隆页面提示“将循环结构转换为 JSON”

GrapesJS 版本[X] 我确认使用最新版本 GrapesJS你用的是什么浏览器? Chrome 129.0.6668.101可复制演示链接 https://grapesjs.com/演示描述一下那个虫子 如何复现这个漏洞? 开放 https://grapesjs.com/...

2 个回答更新于 2024年11月5日

问题 #3316

The editor does not remove the dead script blocks

版本: 0.16.34 你能重现演示中的bug吗? [ ] 是的 [x ] 不 据我了解,导入代码对话框跳过了所有HTML脚本,所以我无法在演示中重现这个问题 预期的行为是什么? 编辑者必须先移除失效脚本块,才能在生成的HTML末尾添加新的脚本块 详细描述那个漏洞* 我在项目中...

4 个回答更新于 2024年1月10日

问题 #3463

Inspector overflow broken

警告 请阅读并遵循接下来的三步,然后在发布问题前删除它们遵守贡献指南 https://github.com/artf/grapesjs/blob/master/CONTRIBUTING.md先快速搜索一下,看看有没有人没开同样的问题所有相关陈述/问题都必须填写/回答,否则问题可...

4 个回答更新于 2023年7月26日

问题 #5503

ReplaceWith 方法没有字符串类型

GrapesJS 版本 [X] 我确认使用最新版本 GrapesJS 你用的是什么浏览器? 铬 可复制演示链接 没有 描述一下那个虫子 Component.ts 的 replaceWith 方法没有字符串类型。 预期的行为是什么? 我应该能像示例中那样用字符串替换组件 comp...

3 个回答更新于 2023年11月8日

与此问题匹配的付费插件

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

查看全部插件

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

免费方案

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

浏览免费插件 →
高级方案

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

浏览高级插件 →

相关教程

关于同一主题的深入指南。

全部教程 →

浏览插件分类

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