Bom dia,
Estou conseguindo salvar e listar sem problemas, porem eu queria fazer para quando gravar um novo registro no banco pela API, ele salvar no banco como esperado e salvar na minha tabela que esta na tela.
Pois toda vez que eu salvo eu preciso executar o método listar, isso pode deixar lento se tiver por exemplo mil registros.
State:
this.state = {
banco: {},
listbanco: []
}
Estou pegando os dados pelo onChange:
<div className="col-lg-12">
<label>ID</label>
<div className="col-lg-12">
<input onChange={(e) => { this.updateBanco('id', e.target.value) }} name="id"></input>
</div>
</div>
<div className="col-lg-12">
<label>CODIGO 001</label>
<div className="col-lg-12">
<input onChange={(e) => { this.updateBanco('codigo', e.target.value) }} name="codigo"></input>
</div>
</div>
<div className="col-lg-12">
<label>NOME </label>
<div className="col-lg-12">
<input onChange={(e) => { this.updateBanco('nome', e.target.value) }} name="nome"></input>
</div>
</div>
<div className="col-lg-12">
<label>AGENCIA 0101 </label>
<div className="col-lg-12">
<input onChange={(e) => { this.updateBanco('agencia', e.target.value) }} name="agencia"></input>
</div>
</div>
Que passa por esse método genérico para salvar no Objeto: banco {}
updateBanco = (prop, value) => {
let b = this.state.banco;
b[prop] = value;
this.setState({ banco: b });
}
No método Gravar ele passa o Objeto usuário que é declarado na própria função, e pega do state o objeto Banco{} Gravar:
gravarPost = () => {
var usuario = {}
usuario.id = 100;
usuario.senha = "2494";
axios({
method: 'post',
url: 'https://www.url.com.br/118/rest/banco/set',
data: [usuario, this.state.banco]
}).then(result => {
console.log(result)
})
}
No listar eu passo apenas o usuario. Listar:
listarPost = () => {
var usuario = {}
usuario.id = 100;
usuario.senha = "2494";
axios({
method: 'post',
url: 'https://www.url.com.br/118/rest/banco/list?',
data: [usuario]
}).then(result => {
this.setState(result.data);
console.log(result.data)
})
}
Minha tabela Estou usando a react-table: que passo apenas o data e ele monta os dados nas colunas que determinei.
https://react-table.js.org/#/story/readme
</div>
<ReactTable
data={this.state.listbanco}
columns={columns}
/>
</div>