this.props.editorState.isInCompositionMode не является ошибкой функции в Draft.js реакции - PullRequest
0 голосов
/ 08 ноября 2019

Моя цель - инициализировать Draft.js редактор HTML, который извлекается из БД. Всякий раз, когда я пытаюсь инициализировать редактор, он выдает ошибку:

this.props.editorState.isInCompositionMode is not a function

Для преобразования содержимого Draft.js в HTML я использовал draft-js-export-html и для преобразования обратно в объект editorState я использовал draft-js-import-html .

Я упомянул код, который я использовал ниже:

Editor.js

    constructor(props) {
        super(props);

        this.state = {
            editorState: this.props.setEditorState,
         }
    }
    render(
       <Editor
            placeholder={"Please give details of news..."}
            editorState={this.state.editorState}
            handleKeyCommand={this.handleKeyCommand}
            keyBindingFn={this.keyBindingFunction}
            onChange={this.onChange} />
       );

MainBody.js

<EditComp setEditorState={stateFromHTML(response.data[i].htmlDesc)} />

Ошибка, которую я получил в консоли, приведена ниже:

Uncaught TypeError: this.props.editorState.isInCompositionMode is not a function
    at DraftEditor._showPlaceholder (static/js/0.chunk.js:80878)
    at DraftEditor._renderPlaceholder (static/js/0.chunk.js:80882)
    at DraftEditor.render (static/js/0.chunk.js:80943)
    at finishClassComponent (static/js/0.chunk.js:153826)
    at updateClassComponent (static/js/0.chunk.js:153781)
    at beginWork$1 (static/js/0.chunk.js:155510)
    at HTMLUnknownElement.callCallback (static/js/0.chunk.js:135702)
    at Object.invokeGuardedCallbackDev (static/js/0.chunk.js:135751)
    at invokeGuardedCallback (static/js/0.chunk.js:135804)
    at beginWork$$1 (static/js/0.chunk.js:161088)
    at performUnitOfWork (static/js/0.chunk.js:160014)
    at workLoopSync (static/js/0.chunk.js:159987)
    at performSyncWorkOnRoot (static/js/0.chunk.js:159576)
    at static/js/0.chunk.js:147628
    at unstable_runWithPriority (static/js/0.chunk.js:187261)
    at runWithPriority$2 (static/js/0.chunk.js:147574)
    at flushSyncCallbackQueueImpl (static/js/0.chunk.js:147623)
    at flushSyncCallbackQueue (static/js/0.chunk.js:147611)
    at discreteUpdates$1 (static/js/0.chunk.js:159730)
    at discreteUpdates (static/js/0.chunk.js:136807)
    at dispatchDiscreteEvent (static/js/0.chunk.js:141282)

Есть ли какая-либо ошибка, которую я делал? В чем причина этой ошибки?

Ответы [ 2 ]

0 голосов
/ 09 ноября 2019

Только одна вещь отсутствовала. EditorState.createWithContent() необходимо. Код файла MainBody.js редактируется следующим кодом:

var contentState = stateFromHTML(this.props.setEditorState);

this.state = {
editorState: EditorState.createWithContent(contentState)
}
0 голосов
/ 08 ноября 2019

Попробуйте использовать консольный журнал, чтобы увидеть, что является результатом stateFromHTML (response.data [i] .htmlDesc).

На мой взгляд, вы ожидаете, что это будет объект с функцией isInCompositionMode, которую онявно не содержит.

Попробуйте найти, где вы вызываете isInCompositionMode.

В наименовании setEditorState указывает, что это функция, и вы устанавливаете ее как состояние «editorState» (не вызывая его). ) поэтому editorState - это функция, к которой нельзя получить доступ, как к объекту.

Как правило, я бы сказал, что вы предоставляете недостаточно данных для ответа.

...