L'événement onChange ne se déclenche pas lorsque l'éditeur de brouillon est en mode lecture seule. Je veux garder le mode lecture seule, mais il doit déclencher l'événement onChange, afin que je puisse enregistrer mon travail.

             <Editor
                readOnly={true}
                onChange={this.onChange}
                ref={(e) => { this.editor = e; }}
                autoCapitalize="none"
                autoComplete="off"
                autoCorrect="off"
                spellCheck={false}
              />
0
satheesh 4 nov. 2019 à 07:59

1 réponse

comme indiqué ci-dessous, vous pouvez déclencher vos actions de sauvegarde sur l'événement de modification ou de flou de l'éditeur (mais pour les performances, je recommande le flou):

const [editorState, setEditorState] = useState();
const [editable, setEditable]=useState(false);
const editorRef = useRef(null);

const onChange = (editorState) => {
  setEditorState(editorState);
};

const onBlur = (state) => {
   //  convertToRaw from draft-js;
  const contentState = convertToRaw(editorState.getCurrentContent());
  // save contentState      
};

return (
  <Editor
    editorState={editorState}
    readOnly={!editable}
    onChange={onChange}
    onBlur={onBlur}
    ref={editorRef}
    autoCapitalize="none"
    autoComplete="off"
    autoCorrect="off"
    spellCheck={false}
  />
)
1
Eslam Abu Hugair 4 nov. 2019 à 05:31