Froala编辑器和React动态导入

时间:2017-10-01 08:04:51

标签: reactjs asynchronous froala

我在基于create-react-app的网页中使用 Froala 编辑器。当我创建一个包时,它表明 froala_editor.pkgd.min.js 占用了大量的包大小。 为了解决这个问题,我决定使用动态导入,这里描述https://serverless-stack.com/chapters/code-splitting-in-create-react-app.html。 所以我创建了一个HOC

import React, { Component } from 'react';

import Callback from '../Callback';

function asyncComponent(importComponent) {
    class AsyncComponent extends Component {
        constructor(props) {
            super(props);

            this.state = {
                component: null
            };
        }

        async componentWillMount() {
            const { default: component } = await importComponent();

            this.setState({
                component: component
            });
        }

        render() {
            const C = this.state.component;

            return C ? <C {...this.props} /> : <Callback />;
        }
    }

    return AsyncComponent;
}

export default asyncComponent;

包括编辑

const Editor = asyncComponent(() => import('../FroalaEditorComponent'));

我想说,bunlde部分已经解决了,因为我得到了两个块,一个包含编辑器而另一个包含编辑器。它改善了加载时间。

但我面临着这样的设置的另一个问题。 加载编辑器的页面时,它只显示很少的图标。

enter image description here

当我在Chrome中打开控制台窗口时,出现其他按钮,不确定为什么会出现这种行为。

1 个答案:

答案 0 :(得分:0)

在加载所有编辑器插件之前,看起来编辑器正在初始化。应该在初始化之前加载所有编辑器插件,以便在工具栏中显示按钮。