node dda6aea022 feat: add markdown editor | 6 년 전 | |
---|---|---|
.. | ||
build | 6 년 전 | |
dist | 6 년 전 | |
example | 6 년 전 | |
src | 6 년 전 | |
.babelrc | 6 년 전 | |
.eslintignore | 6 년 전 | |
.eslintrc | 6 년 전 | |
.eslintrc.js | 6 년 전 | |
.gitattributes | 6 년 전 | |
.gitignore | 6 년 전 | |
.npmignore | 6 년 전 | |
.prettierrc | 6 년 전 | |
LICENSE | 6 년 전 | |
README.md | 6 년 전 | |
package-lock.json | 6 년 전 | |
package.json | 6 년 전 | |
yarn.lock | 6 년 전 |
交流反馈请加QQ群:725634541
# 使用yarn安装
yarn add braft-editor
# 使用npm安装
npm install braft-editor --save
编辑器支持value和onChange属性,这类似于React中原生的input组件。通常情况下,可以用典型的受控组件的形式来使用本编辑器:
import React from 'react'
// 引入编辑器以及EditorState子模块
import BraftEditor, { EditorState } from 'braft-editor'
// 引入编辑器样式
import 'braft-editor/dist/index.css'
export default class EditorDemo extends React.Component {
state = {
editorState: null
}
async componentDidMount () {
// 假设此处从服务端获取html格式的编辑器内容
const htmlContent = await fetchEditorContent()
// 使用EditorState.createFrom将html字符串转换为编辑器需要的editorState数据
this.setState({
editorState: EditorState.createFrom(htmlContent)
})
}
submitContent = async () => {
// 在编辑器获得焦点时按下ctrl+s会执行此方法
// 编辑器内容提交到服务端之前,可直接调用editorState.toHTML()来获取HTML格式的内容
const htmlContent = this.state.editorState.toHTML()
const result = await saveEditorContent(htmlContent)
}
handleEditorChange = (editorState) => {
this.setState({ editorState })
}
render () {
const { editorState } = this.state
return (
<div className="my-component">
<BraftEditor
value={editorState}
onChange={this.handleEditorChange}
onSave={this.submitContent}
/>
</div>
)
}
}
当然本编辑器也支持defaultValue属性,因此你也可以将本编辑器作为一个非受控组件来使用。