首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >EditorJS总是呈现两个编辑器

EditorJS总是呈现两个编辑器
EN

Stack Overflow用户
提问于 2021-06-15 16:55:40
回答 3查看 887关注 0票数 5

我正在尝试使用EditorJS的编辑器。一切正常,除了当我第一次加载页面时,它在开始时初始化两个编辑器,并且每次重新加载页面时都会追加新的编辑器。但它们都在<div id='editorjs' />的内部。我遗漏了什么吗?

代码语言:javascript
复制
// react etc. imports
import EditorJS from '@editorjs/editorjs'

const EditorComponent = (props) => {
    const [input, setInput] = useState({})
    const currentuser = useSelector((state) => state.currentuser)

    const editor = new EditorJS({
        holderId: 'editorjs',
        autofocus: true,
    })

    const postNews = () => {
        // POSTING SUTFF
    }

    return (
        <Grid>
            <Grid templateRows='auto min-content' gap={6}>
                <div id='editorjs' />
                <Button onClick={postNews}>Post news</Button>
            </Grid>
        </Grid>
    )
}

下面是来自dom的屏幕截图,在加载页面后立即添加两个编辑器。

EN

回答 3

Stack Overflow用户

发布于 2022-10-10 10:37:16

关键是使用由editorjs提供的editor.isReady。如果是真的,那么EditorJS已经在运行了。

代码语言:javascript
复制
import React, { useEffect } from "react";
import EditorJS from "@editorjs/editorjs";

const Editor = () => {
  let editor = { isReady: false };
  useEffect(() => {
    if (!editor.isReady) {
      editor = new EditorJS({
        holder: "editorjs",
      });
    }
  }, []);
  return (
    <main>
      <div id="editorjs"></div>
    </main>
  );
};

export default Editor;
票数 0
EN

Stack Overflow用户

发布于 2022-10-26 04:01:13

我取消了反应严格的模式,它帮助了我。

票数 0
EN

Stack Overflow用户

发布于 2022-09-19 13:24:57

找到了一个简单的解决方案

代码语言:javascript
复制
const <Your Component Name> = () => {
const [editor, setEditor] = useState("");

useEffect(() => {
  setEditor(() => new EditorJS(PostEditorConfig()));
  }, []);


// .... other components
return (
<div id=editorjs></div>
)}
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67990522

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档