如何异步插入图片到 ProseMirror?

问题描述 投票:0回答:0

我们正在使用 ProseMirror,TipTap 的抽象在它之上。

我正在尝试在用户粘贴时将图像异步添加到我们的编辑器而不会搞砸历史堆栈,但撤消顺序总是被破坏。

我遇到的问题是操作顺序是这样的:

  1. 插入文字
  2. 插入占位符图像(等待异步)
  3. 插入更多文字
  4. 插入最终图像,覆盖占位符

但在这种情况下,撤消操作总是超出预期的顺序,即:

  1. 撤消“插入更多文本”(3)
  2. 一起撤消占位符图像和最终图像(2/4)
  3. 撤消最初的“插入文本”(1)

但实际撤销顺序变成:

  1. 撤销图片插入(二)
  2. 撤消“插入更多文本”(3)
  3. 撤消“插入文本”(1)

所以从用户的角度来看,撤销操作是乱序的

我已经尝试替换节点,从历史记录中排除事务,并使用

setNodeMarkup
为图像设置新的
src
而不替换节点 - 但在所有情况下,撤消顺序都会被破坏,正如我在最好的情况,通常甚至更糟。

有什么可行的方法吗?在不破坏撤消堆栈顺序的情况下无法异步粘贴图像似乎很荒谬。

javascript wysiwyg editing tiptap prose-mirror
© www.soinside.com 2019 - 2024. All rights reserved.