我正在尝试将GrapesJS功能与我的React APP集成。
I get an error while implementing like `Uncaught TypeError: Cannot read property 'forEach' of undefined grapesjs react`
I would like to have a feature like in this URL
https://grapesjs.com/demo.html
npm i grapesjs-react
import React, {Component} from 'react';
import GEditor from 'grapesjs-react';
class GEditorExample extends Component {
render() {
return (
<GEditor/>
);
}
}
export default GEditorExample;
任何帮助都会很棒。 谢谢。*
答案 0 :(得分:2)
您必须将块指定为prop,该块将通过grapes-js的blockmanager.add
方法添加到编辑器中。
如果不需要块,请尝试提供一个空数组,例如:
<GEditor id="gjs" blocks={[]} />
答案 1 :(得分:1)
如果将块传递给GEditor,它将起作用。
请参见下面的示例代码
import React, {Component} from 'react';
import GEditor from 'grapesjs-react';
class GEditorExample extends Component {
render() {
return (
<GEditor id="geditor" blocks={[]}/>
);
}
}
export default GEditorExample;
答案 2 :(得分:1)
您使用的是哪个版本的grapesjs-react?
我为blocks
道具配置了默认值:
GEditor.defaultProps = {
blockManager: {},
blocks: [],
components: [],
newsletter: false,
plugins: [],
storageManager: {},
styleManager: {},
webpage: false,
};
如果仍然出现此错误,请尝试将软件包更新到最新版本。
答案 3 :(得分:0)
一段时间以来,我一直在寻找一个好的集成商。当前,我的解决方案是使用<iframe>
从外部文件服务器加载GrapeJS。例如:像这样在React组件内使用iframe:
<iframe height="100%" src={`http://127.0.0.1:8081/templateId=${templateId} title="Build your own template" width="100%" />
我知道这不是一个好的解决方案,但是目前它是我发现可以解决问题的唯一方法。