从 tinyMCE onAction 方法调用 setState 时状态未更新

Pau*_*apo 5 javascript tinymce reactjs tinymce-5

我正在研究 react 和 tinymce 中的书籍创建者。允许用户在画布上创建多个文本块并用文本填充它们。

当使用 onClick 方法创建新文本块的按钮在编辑器外部调用时,一切正常,例如典型的 .

当我尝试添加工具栏按钮时出现问题:

    setup: (editor) => {
        editor.ui.registry.addButton("AddNew", {
        text: "Add new",
        onAction: (buttonApi) => addTextBlock()
        });
    },
Run Code Online (Sandbox Code Playgroud)

它工作一次。它通过更新状态对象来创建 textBlock 对象,但连续单击此按钮会将状态重置为初始值(空列表)并再次添加一个对象。

从放置在编辑器外部的按钮执行的相同代码正确创建了点击量的文本块。

我在控制台中没有错误或相关警告。

Var*_*hal 0

我也有同样的问题,然后我用以下代码解决了这个问题:

setup: (editor) => {
    let self = this;
    editor.ui.registry.addButton('customButton', {
        text: 'Button',
        tooltip: 'Insert/edit image',
        onAction: function(){
            self.setState({click:true});
        }
    });
}
Run Code Online (Sandbox Code Playgroud)