Draft.js 编辑器组件不可编辑
Draft.js Editor Component isn't editable
试图学习如何在我自己的应用程序中使用 DraftJS React 组件,但我遇到了一个大问题。我遵循位于 here.
的示例
我已经使用 create-react-app
获取基本样板文件,我已经导入了编辑器和状态对象,并像示例一样实现。
import React, { Component } from 'react';
import {Editor, EditorState} from 'draft-js';
class App extends Component {
constructor(props){
super(props);
this.state = {editorState: EditorState.createEmpty()};
this.onChange = (editorState) => this.setState({editorState});
}
render() {
return (
<div className='container'>
<h2> Welcome to the editor</h2>
<Editor
editorState={this.state.editorState}
onChange={this.onChange}
placeholder='Make Something Great.' />
</div>
);
}
}
export default App;
这个问题是它显示了 H1 和带有占位符文本的编辑器,但它根本不允许我更改编辑器的内容。
我很确定我错过了什么。我需要做什么才能启用编辑?
更新:事实证明它实际上是可编辑的,我只需单击占位符下方即可。奇怪但还可以。
发生这种情况是因为 Draft.css 未包含在内。
最终组件应如下所示:
import React, { Component } from 'react';
import {Editor, EditorState} from 'draft-js';
import 'draft-js/dist/Draft.css';
class App extends Component {
constructor(props){
super(props);
this.state = {editorState: EditorState.createEmpty()};
this.onChange = (editorState) => this.setState({editorState});
}
render() {
return (
<div className='container'>
<h2> Welcome to the editor</h2>
<Editor
editorState={this.state.editorState}
onChange={this.onChange}
placeholder='Make Something Great.' />
</div>
);
}
}
export default App;
试图学习如何在我自己的应用程序中使用 DraftJS React 组件,但我遇到了一个大问题。我遵循位于 here.
的示例我已经使用 create-react-app
获取基本样板文件,我已经导入了编辑器和状态对象,并像示例一样实现。
import React, { Component } from 'react';
import {Editor, EditorState} from 'draft-js';
class App extends Component {
constructor(props){
super(props);
this.state = {editorState: EditorState.createEmpty()};
this.onChange = (editorState) => this.setState({editorState});
}
render() {
return (
<div className='container'>
<h2> Welcome to the editor</h2>
<Editor
editorState={this.state.editorState}
onChange={this.onChange}
placeholder='Make Something Great.' />
</div>
);
}
}
export default App;
这个问题是它显示了 H1 和带有占位符文本的编辑器,但它根本不允许我更改编辑器的内容。
我很确定我错过了什么。我需要做什么才能启用编辑?
更新:事实证明它实际上是可编辑的,我只需单击占位符下方即可。奇怪但还可以。
发生这种情况是因为 Draft.css 未包含在内。
最终组件应如下所示:
import React, { Component } from 'react';
import {Editor, EditorState} from 'draft-js';
import 'draft-js/dist/Draft.css';
class App extends Component {
constructor(props){
super(props);
this.state = {editorState: EditorState.createEmpty()};
this.onChange = (editorState) => this.setState({editorState});
}
render() {
return (
<div className='container'>
<h2> Welcome to the editor</h2>
<Editor
editorState={this.state.editorState}
onChange={this.onChange}
placeholder='Make Something Great.' />
</div>
);
}
}
export default App;