reactjs - 工具栏draftjs编辑器中的自定义按钮

标签 reactjs react-hooks draftjs

如何将后面带有自定义功能的按钮添加到 Draftjs 编辑器中?我觉得这应该非常简单,但我找不到示例或文档。

我有一个只有粗体斜体和列表按钮的编辑器,我想添加一个显示弹出窗口的按钮,我可以在其中选择 3 个选项之一,然后将其“注入(inject)”到编辑器中。

有人能给我指出正确的方向(或文档)吗?

最佳答案

这是我如何尝试的,纯粹的 react Hook 方式来实现目标,

App.js 文件

import MyEditor from './Component/MyEditor';

function App() {
   <MyEditor />
}

MyEditor.js文件导出App.js中使用和导入的MyEditor组件

import React from 'react';
import ReactDOM from 'react-dom';
import {Editor, EditorState, RichUtils} from 'draft-js';
import 'draft-js/dist/Draft.css';
import './MyEditor.css'

export default function MyEditor() {
  
  const [editorState, setEditorState] = React.useState(
    () => EditorState.createEmpty(),
  );


  const _onBoldClick = () => {
    setEditorState(RichUtils.toggleInlineStyle(editorState, 'BOLD'))
  }  

  return(
    <div>
        <button onClick={_onBoldClick}>BOLD</button>
        <div
        >
          <Editor 
            textAlignment="left" placeholder="Enter something here" 
            editorState={editorState} onChange={setEditorState} />
        </div>
        
    </div>
  ) 
  
    
}

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

用于样式的 CSS 文件

div.DraftEditor-root {
    border: 1px solid black;
    
    height: 200px;
    width: 200px;
    margin-left: 20%;

    overflow-y: auto;
}

div.DraftEditor-editorContainer, div.public-DraftEditor-content {
    height: 100%;
}

关于reactjs - 工具栏draftjs编辑器中的自定义按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67555375/

相关文章:

javascript - ReactJS:如何在组件之间同步sessionStorage状态

reactjs - 以函数作为参数的自定义 React 钩子(Hook)

javascript - 如何在 React Hooks 中触发从子级到父级的状态更改?

javascript - Draft Js 文本编辑器的自动对焦

reactjs - 在某些不支持 BroadcastChannel 的浏览器中,从 Service Worker 发送消息以响应组件

javascript - React HandleDelete TypeError 未定义

javascript - React Draft wysiwyg - 清除 editorState 后无法在编辑器中输入文本

javascript - 如何在草稿 js 编辑器中渲染提供的 HTML?

reactjs - MapStateToProps 给我未定义的错误

javascript - 在 react Prop 中解构嵌套对象出错