Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

314
Visualizações
Reaccionar: cambiar el estado de contentEditable div y mantener el cursor

Estoy desarrollando una aplicación de escritura para mi panel de administración y tiene un estado multilingüe... por lo que cada cuadro de entrada se ve así:

 <input type='text' name='title' placeholder='title' onInput={ e => setPostState({ ...postState, [lang]: { ...postState[lang], title: e.target.value } }) } value={ postState[lang].title } />

Funciona perfectamente, puedo escribir lo que sea, y si cambio de idioma cambia el valor, el valor se sincroniza con el estado y no hay problema con el cursor... hasta que llego a una entrada div editable de contenido personalizado (que actúa como un editor de HTML , completo con resaltado de sintaxis):

 <Editor editorRef={ Ref.editor } onInput={ txt => ... } value=... />

Mi editor maneja la entrada con esta función:

 const handleInput = e => { const { current: editor } = editorRef; onInput(editor.textContent); doHighlight(editor); e.preventDefault(); }

y actualiza su contenido de texto en función de su valor aquí:

 useEffect(() => { if (value) editorRef.current.textContent = value; }, [ value ]);

El problema es que la recarga de estado desde el value activa el componente para renderizar... lo que restablece el cursor. ¿Por qué esto no es un problema en un componente de input normal y cómo puedo emular este comportamiento en un div ?

about 4 years ago · Juan Pablo Isaza
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda