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

85
Visualizações
Pasar datos de un componente de clase secundario a un componente funcional principal en reaccionar

Estoy tratando de pasar datos de un componente basado en clases a un componente basado en funciones en reaccionar.

El componente de clase es un editor de pluma de reacción en el que intento obtener los datos escritos en el editor (editorHtml) y pasar los datos al componente funcional.

A continuación se muestra el código en el componente basado en clases

 const CustomHeart = () => <span>♥</span>; function insertHeart() { console.log(this) const Quilly = this.quill const input = document.createElement("input"); input.setAttribute("type", "file"); input.click(); input.onchange = function(){ const cursorPosition = Quilly.getSelection().index; Quilly.insertText(cursorPosition, "♥"); Quilly.insertEmbed(cursorPosition,"image","https://cdn.pixabay.com/photo/2022/01/05/22/31/woman-6918210_960_720.jpg"); Quilly.setSelection(cursorPosition + 1); } } class Editor extends React.Component { state = { editorHtml: "" }; handleChange = html => { this.setState({ editorHtml: html }); }; static modules = { toolbar: { container: "#toolbar", handlers: { insertHeart: insertHeart } } }; static formats = [ "header", "font", "size", "bold"] } render() { return ( <div className="text-editor"> <CustomToolbar /> <ReactQuill value={this.state.editorHtml} onChange={this.handleChange} placeholder={this.props.placeholder} modules={Editor.modules} formats={Editor.formats} /> </div> ); } export default Editor

Para el componente basado en funciones

Estoy tratando de pasar el valor de editorHtml al componente funcional a continuación

 function SendEmail() { return ( <Editor > ) }

Sé que puedo crear tanto un componente funcional como usar accesorios para pasar los datos, pero debido al uso de esta palabra clave en insertHeart en el componente de clase anterior... No pude usar un enfoque funcional

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

Debe administrar el estado de editorHTML en el componente principal y pasarlo a Editor .

 <Editor handleChange={this.handleChange} editorHtml={this.state.editorHTML} />

y acceda a él a través de los accesorios en el Editor:

 <ReactQuill value={this.props.editorHtml} onChange={this.props.handleChange} placeholder={this.props.placeholder} modules={Editor.modules} formats={Editor.formats} />
about 4 years ago · Juan Pablo Isaza Relatório

0

Después de dar vueltas por un tiempo, pude obtener la solución usando el método this.props para acceder al método setHtml en el componente de clase. Este método setHtml toma una cadena... y pasé el valor que estaba obteniendo de el editor al método setHtml... vea a continuación el código para resolver el problema...

 class Editor extends React.Component { state = { editorHtml: "" }; handleChange = (html) => { this.setState({ editorHtml: html }); this.props.setHtml(html); }; }

En el componente de función, configuro el estado de setHtml y también paso el valor del valor en Html

 function SendEmail() { const [html, setHtml] = useState(""); {console.log(html)}//This would give you the value typed in your editor <Editor setHtml = {setHtml} /> }
about 4 years ago · Juan Pablo Isaza Relatório
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