从draft-js-plugins-editor导入编辑器会导致空项目出现TypeErrors

时间:2017-10-14 03:24:59

标签: javascript node.js reactjs draftjs draft-js-plugins

我在Webstorm中创建了一个新的React项目。我已经安装了draft-jsdraft-js-plugins-editor以及插件draft-js-hashtag-plugindraft-js-mathjax-plugin(使用节点)。

我跟随他们'开始'on their Github,但这个例子对我不起作用。我一写

import Editor from 'draft-js-plugins-editor';

我收到TypeError: Cannot read property 'object' of undefined错误。

./node_modules/draft-js-plugins-editor/lib/Editor/index.js
node_modules/draft-js-plugins-editor/lib/Editor/index.js:177
174 | }(_react.Component);
175 |
176 | PluginEditor.propTypes = {
    > 177 |   editorState: _react2.default.PropTypes.object.isRequired,
178 |   onChange: _react2.default.PropTypes.func.isRequired,
179 |   plugins: _react2.default.PropTypes.array,
180 |   defaultKeyBindings: _react2.default.PropTypes.bool,

我的最小示例代码:

import React, { Component } from 'react';
import Editor from 'draft-js-plugins-editor'; // Error upon doing this
import createHashtagPlugin from 'draft-js-hashtag-plugin';
import { EditorState } from 'draft-js';

const hashtagPlugin = createHashtagPlugin();

const plugins = [
    hashtagPlugin,
];

export default class MyEditor extends Component {

    state = {
        editorState: EditorState.createEmpty(),
    };

    onChange = (editorState) => {
        this.setState({
            editorState,
        });
    };

    render() {
        return (
            <Editor
                editorState={this.state.editorState}
                onChange={this.onChange}
                plugins={plugins}
            />
        );
    }
}

1 个答案:

答案 0 :(得分:1)

出现此错误是因为您使用了最新的(第16版)React.js。 In this博客文章(宣布React.js版本16)您可以阅读:

  

15.x中引入的弃用已从核心中删除   包。 React.createClass现在可用作create-react-class,   React.PropTypes作为prop-types ...

如果您使用React 16,那么仍然可以访问React.PropTypes的所有旧包都会破坏。

如果要使用draft-js-plugins-editor,必须将反应版本降级到版本15.例如,对于npm,请使用命令

npm install react@15.4.2 --save

yarn

yarn add react@15.4.2