这是代码沙箱再现。
https://codesandbox.io/s/intelligent-chihiro-9rp0d?file=/src/index.js:1285-1329
我在我的应用程序中有一个位置,我需要在其中插入羽毛笔编辑器(禁用的)的内容,以便用户可以在发送之前预览撰写的电子邮件。
有一个称为“变量”的自定义膨胀。它用作占位符并被服务器上的一些真实数据替换(当向多个收件人发送电子邮件时)。它由图片上的这些蓝色矩形表示。以上。
问题如下。即使我不使用任何这些自定义膨胀,如果整个消息正文看起来像一个包含至少两个格式化块的单个字符串,我会收到标题中指定的错误消息:“after.appendChild is not a function “:
这就是我在第 3 步中的内容(编辑时)
这是在第 4 步预览时(它与quillInstance.setContents
方法一起插入)。
还有控制台。
那我做了什么。我通过该方法获取了插入到新的羽毛笔编辑器实例中的实际数据对象,.setContents
并尝试单独重现该问题(请参阅顶部的 Code Sandbox repro 链接)。
我发现了一件有趣的事情。事实证明,如果您注释掉以下几行,问题就解决了:
Quill.register({
"formats/Variable": Variable
});
所以看起来是否使用膨胀甚至都无关紧要。只有当膨胀被注册时才重要。如果是,则代码无法正常工作。
对比
那么,我能做些什么呢?将不胜感激任何帮助!