Draft.js headers 未正确呈现
Draft.js headers do not get rendered properly
我有一个安装了 tailwind 的 next.js 环境和一个简单的 draft.js 文本编辑器。在我的工具栏组件中,我切换内联样式和块样式。一切正常,除了当我将块类型设置为 header-one、header-two 等时没有渲染。我记录了编辑器状态并且块类型已正确设置为块,但没有任何反应。疯狂的是,它适用于 unordered-list-item 和 ordered-list-item.
为了简单起见,我添加了一个 Test-Button,它应该可以工作,但没有。非常感谢任何帮助我走上正轨的帮助!
export default function TextEditor({data}) {
const [blockData, setBlockData] = React.useState(data)
const rawContent = data.textBlockText
const [editorState, setEditorState] = React.useState(
() => rawContent? EditorState.createWithContent(convertFromRaw(JSON.parse(rawContent))) : EditorState.createEmpty(),
);
const handleFormatChange = (event) =>{
setEditorState(RichUtils.toggleBlockType(editorState, "header-one"))
}
return (
<div className="h-full">
<div className="w-full py-4 flex flex-row px-8">
<Toolbar editorState={ editorState } setEditorState={ setEditorState } />
</div>
<div className="w-full p-4 border-gray-500 border-2 mt-10 lg:w-1/2 lg:mx-auto">
<Editor
editorState = {editorState}
onChange = {setEditorState}
/>
</div>
<button onClick={e => handleFormatChange ("header-one")}>Test Button</button>
</div>
)
}
检查 h1、h2 等样式是否未被覆盖。
例如,Tailwind CSS 使所有 h1、h2 等样式相同,您必须在 globals.css 文件中添加如下内容:
@layer base {
h1,
h2,
h3,
h4,
h5,
h6 {
font-size: revert;
font-weight: revert;
}
}
我有一个安装了 tailwind 的 next.js 环境和一个简单的 draft.js 文本编辑器。在我的工具栏组件中,我切换内联样式和块样式。一切正常,除了当我将块类型设置为 header-one、header-two 等时没有渲染。我记录了编辑器状态并且块类型已正确设置为块,但没有任何反应。疯狂的是,它适用于 unordered-list-item 和 ordered-list-item.
为了简单起见,我添加了一个 Test-Button,它应该可以工作,但没有。非常感谢任何帮助我走上正轨的帮助!
export default function TextEditor({data}) {
const [blockData, setBlockData] = React.useState(data)
const rawContent = data.textBlockText
const [editorState, setEditorState] = React.useState(
() => rawContent? EditorState.createWithContent(convertFromRaw(JSON.parse(rawContent))) : EditorState.createEmpty(),
);
const handleFormatChange = (event) =>{
setEditorState(RichUtils.toggleBlockType(editorState, "header-one"))
}
return (
<div className="h-full">
<div className="w-full py-4 flex flex-row px-8">
<Toolbar editorState={ editorState } setEditorState={ setEditorState } />
</div>
<div className="w-full p-4 border-gray-500 border-2 mt-10 lg:w-1/2 lg:mx-auto">
<Editor
editorState = {editorState}
onChange = {setEditorState}
/>
</div>
<button onClick={e => handleFormatChange ("header-one")}>Test Button</button>
</div>
)
}
检查 h1、h2 等样式是否未被覆盖。
例如,Tailwind CSS 使所有 h1、h2 等样式相同,您必须在 globals.css 文件中添加如下内容:
@layer base {
h1,
h2,
h3,
h4,
h5,
h6 {
font-size: revert;
font-weight: revert;
}
}