let [detail,setDetail] = useState({'details':''}) //Specialized state for Editor element let {details} = detail const handleEditorChange = (e)=>{ setDetail( ...detail, [e.target.textareaName]:e.target.value ) } //returning a jsx (part of the code) focus on Editor, because this where the problem occur: <div> <form onSubmit={(e)=>{handleChange(e)}}> <input name='name' value={name} onChange={(e)=>{handleChange(e)}}> <Editor textareaName='details' onInit={(evt, editor) => editorRef.current = editor} init={{ section:'textarea', height: 500, menubar: false, toolbar: 'undo redo | formatselect | ' + 'bold italic backcolor | alignleft aligncenter ' + 'alignright alignjustify | bullist numlist outdent indent | ' + 'removeformat | help', content_style: 'body { font-family:Helvetica,Arial,sans-serif; font-size:14px }' }} value={detail} onEditorChange={(e)=>editorHandleChange(e)}/> </form> </div> Tengo un elemento Editor de tinymce , este se usa para reaccionar. Tengo un estado como este para todas las entradas + Editor:
let [someState,setSomeState] = {'name':,"year":"","detail":""} ahora, como ve, el name y el year están controlados por elementos de entrada normales en jsx, pero para obtener detail , tengo que usar el elemento Editor , y realmente no sé cómo rastrear el cambio del editor, además, no sé cómo establecer la propiedad de detail en el estado someState al enviar, algún código para manejar el cambio del editor:
let editorHandleChange = (e)=>{ setdet( { ...detail, textareaName: e.target.value } ) } me está dando textareaName no está definido en la consola, ¡lo mismo con el value , se agradece cualquier ayuda!
editar: el elemento Editor tiene una apiKey, pero la escondí aquí.
Parece que hay un contenedor de reacción para tinymce , que se describe aquí: https://www.tiny.cloud/docs/tinymce/6/react-cloud/ - en este ejemplo, el contenido del editor se registra en la consola. Reemplace la llamada de console.log con su estado setter y debería haber terminado.
Si por alguna razón no puede usar el envoltorio de reacción, también puede intentar cambiar su código en handleEditorChange para acceder al evento nativo: e.nativeEvent.target.textAreaName . Sin embargo, preferiría usar el envoltorio de reacción porque entonces no es necesario mezclar los eventos del navegador/el DOM del navegador con los eventos virtuales/el DOM virtual.