0

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

我在他们的 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}
            />
        );
    }
}
4

1 回答 1

1

出现此错误是因为您使用了最新(第 16 版)版本的 React.js。在这篇博文(React.js 第 16 版公告)中,您可以阅读:

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

React.PropTypes如果您将它们与 React 16 一起使用,所有仍然可以访问的旧包都将被破坏。

如果你想使用draft-js-plugins-editor你必须将你的反应版本降级到版本 15。例如,npm使用这个命令

npm install react@15.4.2 --save

或者这个yarn

yarn add react@15.4.2

于 2017-10-14T06:11:33.183 回答