我在Webstorm中创建了一个新的React项目。我已经安装了draft-js
和draft-js-plugins-editor
以及插件draft-js-hashtag-plugin
和draft-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}
/>
);
}
}
答案 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