Boa tarde, Estou fazendo uma CRUD para testar a funcionalidade do componente modal ( Bootstrap)
E comecei a reparar que estava digitando muitas vezes o mesmo código, por exemplo :
export default class Banco extends Component {
constructor() {
super();
this.state = {
modalnovo: false,
modaldel: false,
modalalterar: false
}
}
Métodos:
togglemodalnovo = () => {
this.setState({
modalnovo: !this.state.modalnovo
});
}
togglemodaldel = () => {
this.setState({
modaldel: !this.state.modaldel
});
}
togglemodalalterar = () => {
this.setState({
modalalterar: !this.state.modalalterar
});
}
// Modal Novo
<Modal isOpen={this.state.modalnovo} toggle={this.togglemodalnovo}>
<ModalHeader className="teste" toggle={this.togglemodalnovo}>Deletar Banco</ModalHeader>
<ModalBody className="teste" >
<div className="col-lg-6">
<input onChange={(e) => { this.updateProperty('id', e.target.value) }} type="text"></input>
</div>
<div className="col-lg-6">
<input onChange={(e) => { this.updateProperty('nome', e.target.value) }} type="text"></input>
</div>
</ModalBody>
<ModalFooter className="teste">
<Button color="danger" onClick={this.delete}>Deletar</Button>
<Button color="warning" onClick={this.togglemodaldel}>Cancelar</Button>
</ModalFooter>
</Modal
//Modal deletar
<Modal isOpen={this.state.modaldel} toggle={this.togglemodaldel}>
<ModalHeader className="teste" toggle={this.togglemodaldel}>Deletar Banco</ModalHeader>
<ModalBody className="teste" >
<h6>Tem certeza que deseja <b className='red-text'>EXCLUIR</b> os itens selecionados:</h6>
<BootstrapTable className="mt-3" pagination striped data={this.state.listbancosel}>
<TableHeaderColumn id="tableFinanceiro" isKey dataField='id'>ID</TableHeaderColumn>
<TableHeaderColumn dataField='nome'>Nome:</TableHeaderColumn>
<TableHeaderColumn dataField='conta'>Conta:</TableHeaderColumn>
<TableHeaderColumn dataField='agencia'>Agencia:</TableHeaderColumn>
<TableHeaderColumn dataField='ativo'>Ativo:</TableHeaderColumn>
</BootstrapTable>
</ModalBody>
<ModalFooter className="teste">
<Button color="danger" onClick={this.delete}>Deletar</Button>
<Button color="warning" onClick={this.togglemodaldel}>Cancelar</Button>
</ModalFooter>
</Modal
//Modal alterar
<Modal isOpen={this.state.modalalterar toggle={this.togglemodalalterar}>
<ModalHeader className="teste" toggle={this.togglemodalalterar}>Deletar Banco</ModalHeader>
<ModalBody className="teste" >
<h6>Tem certeza que deseja <b className='red-text'>EXCLUIR</b> os itens selecionados:</h6>
<BootstrapTable className="mt-3" pagination striped data={this.state.listbancosel}>
<TableHeaderColumn id="tableFinanceiro" isKey dataField='id'>ID</TableHeaderColumn>
<TableHeaderColumn dataField='nome'>Nome:</TableHeaderColumn>
<TableHeaderColumn dataField='conta'>Conta:</TableHeaderColumn>
<TableHeaderColumn dataField='agencia'>Agencia:</TableHeaderColumn>
<TableHeaderColumn dataField='ativo'>Ativo:</TableHeaderColumn>
</BootstrapTable>
</ModalBody>
<ModalFooter className="teste">
<Button color="danger" onClick={this.modalalterar}>Deletar</Button>
<Button color="warning" onClick={this.togglemodalalterar}>Cancelar</Button>
</ModalFooter>
</Modal
Não leve em conta o conteúdo do modal pois estou usando como exemplo. Essa é a maneira correta de lidar com essa situação ? ficar criando um modal diferente para cada ação, CADASTRAR, DELETAR e EXCLUIR.
Teria como criar um componente Modal e importar ele quando for utilizar porem editar algumas coisas, como exemplo, colocar mais campos e alterar cores.