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>
);
}