Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

submitFormulario - após inserir valor o campo input não é limpado mas o value sim

Eu segui os passos da aula, revi os códigos e não encontrei o problema. Eu insiro o valor no campo input, depois de salvar o campo input permanece preenchido, mas ao inserir novamente ele permanece sem valores na tabela. Sei que posso resolver isto de outra forma, mas gostaria de entender porque não esta funcionando.

Formlario.js

class Formulario extends Component {

    constructor(props) {
        super(props);

        this.stateInicial = {
            nome: '',
            livro: '',
            preco: '',
        }

        this.state = this.stateInicial;
    }

    escutadorDeInput = event => {
        const { name, value } = event.target;

        this.setState({
            [name]: value
        });
    }

    submitFormulario = () => {
        this.props.escutadorDeSubmit(this.state);
        this.setState(this.stateInicial);
    }


    render() {

        const { nome, livro, preco } = this.state;

        return (
            <form>

                <label htmlFor="nome">Nome</label>
                <input
                    id="nome"
                    type="text"
                    name="nome"
                    valie={nome}
                    onChange={this.escutadorDeInput}
                />

                <label htmlFor="livro">Livro</label>
                <input
                    id="livro"
                    type="text"
                    name="livro"
                    valie={livro}
                    onChange={this.escutadorDeInput}
                />


                <label htmlFor="preco">Preço</label>
                <input
                    id="preco"
                    type="text"
                    name="preco"
                    valie={preco}
                    onChange={this.escutadorDeInput}
                />


                <button onClick={this.submitFormulario} type="button">Salvar</button>

            </form>
        )
    }
}

App.js

escutadorDeSubmit = autor => {
    this.setState({ autores: [...this.state.autores, autor] })
  }

  render() {
    return (
      <Fragment>
        <Tabela autores={this.state.autores} removeAutor={this.removeAutor} />
        <Form escutadorDeSubmit={this.escutadorDeSubmit} />
      </Fragment>
    );
  }
1 resposta
solução!

Já descobri meu problema, era mais simples do que pensava, eu tinha colocado virgula a mais e tinha esquecido de fechar com ponto e virgula em uma parte do código. Agora esta funcionando normalmente.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software