3
respostas

Constructor

no arquivo do formulario, a gente cria o constructor com o this.title e this.text,

porque precisamos desse constructor??

import React, { Component } from 'react'; import './style.css'

class Form extends Component {

// constructor() {
//     super();
//     this.title = '';
//     this.text = '';
// }

handleChangeTitle(event) {
    event.stopPropagation();
    this.title = event.target.value;
    console.log(this.title);
}

handleChangeText(event) {
    event.stopPropagation();
    this.text = event.target.value;
    console.log(this.text);
}

createCard(event) {
    event.preventDefault();
    event.stopPropagation();
    console.log(`Um novo card foi criado ${this.title} ${this.text}`);
}

render() {
    return (
        <section className="formSection">
            <form 
                className="form"
                onSubmit={this.createCard.bind(this)} >

                <input 
                    className="input"
                    type="text"
                    placeholder="title"
                    onChange={this.handleChangeTitle.bind(this)}/>

                <textarea
                    className="textarea"
                    placeholder='Write your notes'
                    onChange={this.handleChangeText.bind(this)}/>

                <button className="btn btn-primary">Create</button>
            </form>
        </section>
    )
}

}

export default Form;

eu comentei essas linhas do arquivo e ele respondeu igual, porque usamos ele nesse caso??

3 respostas

Fala ai Murilo, tudo bem? Esse construtor vai inicializar os atributos da classe title e text como uma string vazia.

Caso eles não sejam chamados, o valor inicial dos mesmos será undefined e isso pode acarretar em possíveis erros durante a execução do código, exemplo:

this.title.toUpperCase()

Se por um acaso esse código for executado antes de atribuir um valor para o title o mesmo vai dar erro, porque title ainda está undefined.

Somente quando você chama a função handleChangeTitle ou handleChangeText que ambos irão receber os seus respectivos valores.

Espero ter ajudado.

Fala Matheus! faz sentido o que você falou,

|valeu

Magina Murilo, sempre que precisar não deixe de criar suas dúvidas.

Abraços e bons estudos.