facebookarchive / draft-js

A React framework for building text editors.
https://draftjs.org/
MIT License
22.56k stars 2.64k forks source link

How to change blockType by pressing keyboard #3170

Open qirong77 opened 1 year ago

qirong77 commented 1 year ago

I want to change the blocktype when I tag something. For example , I want to change the current blocktype to 'header-one' when I press 'x' in my keyboard, here is my code

  const handleBefeforeInput = (
    chars: string,
    editorState: EditorState,
    eventTimeStamp: number
  ) => {
    if (true) {
      if (chars === 'x') {
    setEditorState(RichUtils.toggleBlockType(editorState, 'header-one'))
      }
      return 'not-handled'
    } else {
      return 'handled'
    }
  }

It works at the first time , but when I press enter or tag in other block , the blocktype turn to 'unstyled'. I dont know how to fix this problem , can anybody help me ,thanks