2016-10-20 2 views
2

Я хочу получить содержимое моего редактора и в конечном итоге сохранить его в контент const. Я получаю сообщение об ошибке _draftJs.EditorState.getCurrentContent не является функцией.Попытка использования getCurrentContent в файле draftjs

import React from 'react' 
import ReactDOM from 'react-dom' 
import {Editor, EditorState, RichUtils} from 'draft-js' 

const content = EditorState.getCurrentContent() 
console.log('str= ', EditorState.getCurrentContent()) 
console.log('content=', content) 
class MyEditor extends React.Component { 
    constructor (props) { 
    super(props) 
    this.state = {editorState: EditorState.createEmpty()} 
    this.onChange = (editorState) => this.setState({editorState}) 
    this.handleKeyCommand = this.handleKeyCommand.bind(this) 
    } 
    _onBoldClick() { 
    this.onChange(RichUtils.toggleInlineStyle(this.state.editorState,  'BOLD')) 
    } 
    _onUnderlineClick() { 
    this.onChange(RichUtils.toggleInlineStyle(this.state.editorState, 'UNDERLINE')) 
    } 
    render() { 
    return (
     <div id='content'> 
     <h1>Notejs</h1> 
     <div id='editor'> 
     <button onClick={this._onBoldClick.bind(this)}>Bold</button> 
     <button onClick={this._onUnderlineClick.bind(this)}>Underline</button> 
     <Editor editorState={this.state.editorState} onChange={this.onChange} /> 
     </div> 
     </div> 
    ) 
    } 
} 

ReactDOM.render(
    <MyEditor />, 
    document.getElementById('app') 
) 

ответ

0

импорт convertToRaw convertToRaw (this.state.editorState.getCurrentContent())

2

this.state.editorState.getCurrentContent() не EditorState.getCurrentContent()

1

Давайте предположим, что мы имеем кнопку сохранить для сохранения данных. Дополнительно нам необходимо импортировать модули convertFromRaw и convertToRaw, которые предоставляются чертежом-js.

import React from 'react' 
import ReactDOM from 'react-dom' 
import { Editor, EditorState, RichUtils, ContentState, convertFromRaw, convertToRaw} from 'draft-js'; 

class MyEditor extends React.Component { 
    constructor (props) { 
    super(props) 
    this.state = {editorState: EditorState.createEmpty()} 
    this.onChange = (editorState) => this.setState({editorState}) 
    this.handleKeyCommand = this.handleKeyCommand.bind(this) 
    } 

    _onBoldClick() { 
    this.onChange(RichUtils.toggleInlineStyle(this.state.editorState,'BOLD')) 
    } 

    _onUnderlineClick() { 
    this.onChange(RichUtils.toggleInlineStyle(this.state.editorState,'UNDERLINE')) 
    } 

    _onSave() { 

    const contentState = this.state.editorState.getCurrentContent(); 
    const editorContentRaw = convertToRaw(contentState); 

    /* we can save this editorContentRaw inside the DB. */ 

    } 

    render() { 
    return (
     <div id='content'> 
     <h1>Notejs</h1> 
     <div id='editor'> 
      <button onClick={this._onBoldClick.bind(this)}>Bold</button> 
      <button onClick={this._onUnderlineClick.bind(this)}>Underline</button> 
      <Editor editorState={this.state.editorState} onChange={this.onChange} /> 
      <button onClick={this._onSave.bind(this)}>Save</button> 
     </div> 
     </div> 
    ) 
    } 
} 

ReactDOM.render(
    <MyEditor />, 
    document.getElementById('app') 
) 
Смежные вопросы