我正在尝试使用EditorJS的编辑器。一切都很好,除了当我第一次加载页面时,它在开始时初始化两个编辑器,并且每次我重新加载页面时都会追加新的编辑器。但它们都在<div id='editorjs' />
div中。我是否遗漏了什么?
// 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的屏幕截图,在加载页面后立即添加了两个编辑器。
4条答案
按热度按时间czq61nw11#
我取消了严格React模式,它帮助我
tyg4sfes2#
关键是使用editorjs提供的
editor.isReady
,如果为true,则EditorJS已经在运行。soat7uwm3#
在useEffect中,我首先检查编辑器是否处于默认状态,(“”)然后继续创建EditorJS的新示例,否则跳过它。
第一个月
}, [])
6jjcrrmo4#
找到了一个简单的解决方案