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

147
Visualizações
Devolver componente a una identificación al hacer clic en un botón

Quiero devolver un componente <SaveTask/> a una etiqueta div donde <div id="saveTask"> . Intenté usar this.setState() , pero cambia el contenedor y muestra el <SaveTask/> . Quiero mantener ese contenedor y debajo de ese contenedor, quiero agregar un componente después de hacer clic en un botón. ¿Hay alguna forma de agregar un componente usando document.getElementById('saveTask') .

 import React, { Component } from 'react' import SaveTask from './SaveTask'; export default class TaskHeader extends Component { constructor(props) { super(props) this.state = { saveTask: false, } this.showComp = () => { this.setState({ saveTask: true, }) } } render() { if(this.state.saveTask) { return ( document.getElementById('saveTask').innerHTML = <SaveTask/> ) } return ( <div> <div className="container-fluid bg-white border-bottom"> <div className="row"> <div className="col-12"> <div className="tasks-upper text-muted">TASK MANAGEMENT APP</div> <div className="tasks-lower"> <span className="text-secondary text-size">TASK</span><button className="text-primary btn-size" type="button" onClick={this.showComp}>+</button> </div> </div> </div> </div> <div id="saveTask"> Return a component to this section when clicking the button </div> </div> ) } }

mira esta imagen

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

0

Sí, entonces la belleza de reaccionar es que no necesita y no debe actualizar el HTML interno para actualizar un componente. Simplemente puede usar un ternario para determinar qué componente mostrar más adelante:

 import React, { Component } from 'react' import SaveTask from './SaveTask'; export default class TaskHeader extends Component { constructor(props) { super(props) this.state = { saveTask: false, } this.showComp = () => { this.setState({ saveTask: true, }) } } render() { return ( <div> <div className="container-fluid bg-white border-bottom"> <div className="row"> <div className="col-12"> <div className="tasks-upper text-muted">TASK MANAGEMENT APP</div> <div className="tasks-lower"> <span className="text-secondary text-size">TASK</span><button className="text-primary btn-size" type="button" onClick={this.showComp}>+</button> </div> </div> </div> </div> {this.state.saveTask ? ( <SaveTask/> ) : ( <div id="saveTask"> Return a component to this section when clicking the button </div> )} </div> ) } }

En este caso, está diciendo, "si this.state.saveTask es verdadero, entonces muestre <SaveTask /> ; de lo contrario, muestre el elemento <div id="saveTask"> . Si quisiera dentro de ese div, simplemente movería el ternario en su interior.

about 4 years ago · Juan Pablo Isaza Relatório

0

Espero que la siguiente respuesta te ayude.

Lograr usando el Componente Funcional

 import React, { useState } from "react"; import SaveTask from "./SaveTask"; function TaskHeader() { const [show, setShow] = useState(false); const showComp = () => { setShow(true); }; return ( <div> <div className="container-fluid bg-white border-bottom"> <div className="row"> <div className="col-12"> <div className="tasks-upper text-muted">TASK MANAGEMENT APP</div> <div className="tasks-lower"> <span className="text-secondary text-size">TASK</span> <button className="text-primary btn-size" type="button" onClick={showComp} > + </button> </div> </div> </div> </div> <div id="saveTask">{show && <SaveTask />}</div> </div> ); } export default TaskHeader;

Lograr usando el componente de clase

 import React, { Component } from 'react' import SaveTask from './SaveTask'; export default class TaskHeader extends Component { constructor(props) { super(props) this.state = { saveTask: false, } this.showComp = () => { this.setState({ saveTask: true, }) } } render() { return ( <div> <div className="container-fluid bg-white border-bottom"> <div className="row"> <div className="col-12"> <div className="tasks-upper text-muted">TASK MANAGEMENT APP</div> <div className="tasks-lower"> <span className="text-secondary text-size">TASK</span><button className="text-primary btn-size" type="button" onClick={this.showComp}>+</button> </div> </div> </div> </div> <div id="saveTask">` { this.state.saveTask && <SaveTask/> } </div> </div> ) } }
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