Gutenberg中的应用格式不起作用且没有错误

时间:2020-02-21 作者:Naveen

我正在尝试对所选文本应用格式,但gutenberg的apply format方法没有返回任何错误,并且默默失败。

我正在像这样注册我的格式类型

import { registerFormatType } from "@wordpress/rich-text";

registerFormatType(BLOCK_NAME, {
          title: "Answer",
          tagName: "span",
          className: SOME_CLASS
        });
试着这样申请

    on(SOME_EVENT, result => {
    applyFormat(props.value, { type: BLOCK_NAME });
}
applyformat方法不会引发任何错误,但当我尝试将格式应用于文本选择时,它并没有在其周围创建包装。它默默地失败了,为什么它不工作?

Update:我做了一个控制台。从apply format登录结果,但未返回格式化文本。

const result = applyFormat(props.value, { type: BLOCK_NAME });
console.log(result)
道具。控制台中的值

{formats: Array(16), text: "qwe qwewq eqweq?", start: 4, end: 11}
applyFormat的结果值

{formats: Array(16), text: "qwe qwewq eqweq?", start: 4, end: 11}
我希望applyFormat在所选文本周围添加一个带有类名的span,我在代码中做错了什么?

2 个回复
最合适的回答,由SO网友:Naveen 整理而成

好的,我学了5个小时后,你需要在道具内调用applyFormat。onChange方法,因此代码如下所示

props.onChange( applyFormat(props.value, { type: BLOCK_NAME }) );
如果您没有在此道具内执行applyformat。一旦更改,不会抛出任何错误,但它会自动失败。

SO网友:Vitauts Stočka

在结果中看不到应用的格式text 属性,但您的结果应具有新的activeFormats 属性要获取具有应用格式的HTML,可以使用wp.richText.toHTMLString({result}). This answer 可能会有一些想法。

相关推荐