未从 HTML 解析 MUI-RTE 默认值

MUI-RTE default value not being parsed from HTML

我正在使用以下代码填充 MUI-RTE 的默认值:

    // 1. Convert the HTML
    const contentHTML = convertFromHTML(tenant.config.confidentiality.text)

    // 2. Create the ContentState object
    const state = ContentState.createFromBlockArray(
        contentHTML.contentBlocks,
        contentHTML.entityMap
    )

    // 3. Stringify `state` object from a Draft.Model.Encoding.RawDraftContentState object
    const content = JSON.stringify(convertToRaw(state))

然后在组件上我将内容设置为 defaultValue 属性:

<MUIRichTextEditor
                            key='text-editor'
                            label='Start typing confidentiality agreement...'
                            controls={[
                                'bold',
                                'italic',
                                'underline',
                                'strikethrough',
                                'link',
                                'numberList',
                                'bulletList',
                                'quote',
                                'media',
                                'undo',
                                'redo',
                            ]}
                            defaultValue={content}
                            onChange={onChange}
                        />

但是,在编辑器中,文本显示为默认字符串:

<p>Hola, como estamos? </p> <p><br></p> <p><strong>Ahora si esta funcionando bien, lo qeu pasaba es que </strong>volvia a asignar el valor default siempre</p> <p><br></p> <ol> <li>Ok.</li> </ol>

而且不让我编辑它。

这是 onChange 函数:

const onChange = (data) => {
        let options = {
            entityStyleFn: (entity) => {
                const entityType = entity.get('type').toLowerCase()
                if (entityType === 'image') {
                    const data = entity.getData()
                    return {
                        element: 'img',
                        attributes: {
                            src: data.url,
                        },
                        style: {
                            // Put styles here...
                        },
                    }
                }
            },
        }
        setConfidentialityText(stateToHTML(data.getCurrentContent(), options))
    }

你能帮我找到解决办法吗?

谢谢

默认值必须是一个字符串化的

Draft.Model.Encoding.RawDraftContentState对象.

doc

中也提到