Tutorial CRUD React-Js API #3 : ( UPDATE ) Edit data Dengan DataBase Json-Server
Tutorial CRUD React-Js #3 : ( UPDATE) Edit data Dengan DataBase Json-Server
Materi tutorial ini merupakan lanjutan materi dari tutorial sebelumnya tentang , Tutorial CRUD React-Js #2 : ( CREATE ) Simpan data Dengan DataBase Json-Server. pada materi sebelumnya kita telah berhasil menambahkan atau menyimpan data ke database JSON-Server kita.
Pada materi Tutorial CRUD React-Js #3 : ( UPDATE) Edit data Dengan DataBase Json-Server ini, kita akan membuat fungsi untuk update data yang telah kita simpan ke database JSON-Server. agar lebih meudah dalam mengikuti tutorial pada materi ini sebaiknya bisa baca terlebih dahulu materi part2 sebelumnya, untuk link part 2 tentang Simpan data react js ke database JSON-Server Bisa Dilihat pada link berikut ini.
Link : Tutorial CRUD React-Js #2 : ( CREATE ) Simpan data Dengan DataBase Json-Server
Kita masih menggunakan project yang sama, langsung saja ikuti Titorial Berikut ini.
1. Buka Project Sebelumnya
pastikan project sebelumnya berjalan dengan normal tanpa ada Kendala Error dari program, untuk mempermudah kita melanjutkan tutorial part #3 ini. dan pastikan juga Json Server nya sudah di jalakan bersaamaan dengan program.
Running Program |
2. Membuat Hendle Update
HendelUpdate = (data) => {
console.log('Update id', data.id);
console.log('Update arry', data);
this.setState({
DataUserNew: data,
isUpdate: true
})
}
import React, { Component } from 'react';
class table extends Component {
render() {
const prmData = this.props.data;
return (
<tr >
<td>{prmData.id}</td>
<td>{prmData.nama}</td>
<td>{prmData.telpon}</td>
<td>{prmData.alamat}</td>
<td>
<button className="my-button btn-yellow" onClick={() => this.props.update(prmData)} >Edit</button>
<button className="my-button btn-red" onClick={() => this.props.remove(prmData.id)} >Delete</button>
</td>
</tr>
);
}
}
export default table;
UpdateDataUser = () => {
const dataUpdate = this.state.DataUserNew;
const id = dataUpdate.id;
fetch(apiURL + id, {
method: 'PUT',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
body: JSON.stringify(dataUpdate)
}).then((res) => {
console.log(res)
console.log("Status Update", res.status)
// Untuk Tampung respon Dari Server
this.setState({
Notif: {
alertShow: true,
actionType: 'updated',
responCode: res.status,
}
})
this.GetdataUsers()
this.ClearForm()
});
}
import React, { Component } from 'react';
import Mytable from '../../../component/table/table'
import Alert from '../../../component/alert/Alert'
const apiURL = "http://localhost:3005/users/"
class Crud extends Component {
constructor(props) {
super(props);
this.state = {
dataUser: [], // Untuk tampung Get all data
totalData: 0, // Untuk Hitung All Data
isUpdate: false, // Untuk Fileter Fungsi
Notif: { // Untuk Tampung respon Dari Server
alertShow: false,
actionType: '',
responCode: 0,
},
DataUserNew: { // untuk Tampung data Update / New data
id: 1,
nama: '',
alamat: '',
telpon: ''
}
}
}
componentDidMount() {
this.GetdataUsers()
}
GetdataUsers() {
fetch(apiURL).then(res => {
if (res.status === 200)
return res.json()
else
return <p>No data Found</p>
}).then(resdata => {
console.log(resdata)
// console.log('Numrow', resdata.length)
this.setState({
dataUser: resdata,
totalData: resdata.length
})
})
}
SaveNewDataUSer = () => {
const Newdata = this.state.DataUserNew;
fetch(apiURL, {
method: "post",
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
body: JSON.stringify(Newdata)
}).then((res) => {
console.log(res)
console.log("Status Create", res.status)
// Untuk Tampung respon Dari Server
this.setState({
Notif: {
alertShow: true,
actionType: 'created',
responCode: res.status,
}
})
this.GetdataUsers()
this.ClearForm()
});
}
UpdateDataUser = () => {
const dataUpdate = this.state.DataUserNew;
const id = dataUpdate.id;
fetch(apiURL + id, {
method: 'PUT',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
body: JSON.stringify(dataUpdate)
}).then((res) => {
console.log(res)
console.log("Status Update", res.status)
// Untuk Tampung respon Dari Server
this.setState({
Notif: {
alertShow: true,
actionType: 'updated',
responCode: res.status,
}
})
this.GetdataUsers()
this.ClearForm()
});
}
HendelOnchange = (event) => {
// console.log('Form Change')
const NumberingId = this.state.totalData + 1; // Untuk ID New Data
let prmInputUser = { ...this.state.DataUserNew }; // Copy State
if (!this.state.isUpdate) { //Cek Jika Update Data Idnya Tidak Di Ubah
prmInputUser['id'] = NumberingId;
}
prmInputUser[event.target.name] = event.target.value;
this.setState({
DataUserNew: prmInputUser
})
}
ClearForm = () => {
this.setState({
isUpdate: false,
DataUserNew: {
id: 1,
nama: '',
alamat: '',
telpon: ''
}
})
// Mengembalikan Nilai Awal Notif
setInterval(() => {
this.setState({
Notif: {
alertShow: false,
actionType: '',
responCode: 0,
}
})
}, 4500);
}
HendelSimpan = () => {
if (this.state.isUpdate) {
this.UpdateDataUser();
} else {
this.SaveNewDataUSer();
}
}
HendelUpdate = (data) => {
console.log('Update id', data.id);
console.log('Update arry', data);
this.setState({
DataUserNew: data,
isUpdate: true
})
}
render() {
return (
<div className="card">
<div className="Titel">
CRUD FAKE API
</div>
<div className="conten">
Belajar Crud React js dengan Fake API JSON Server <b>https://www.akscoding.com/</b>
</div>
<div className="container">
<Alert data={this.state.Notif} />
<div className="conten">
<div className="form-inline" >
<label htmlFor="nama">Nama:</label>
<input type="text" id="nama" placeholder="Nama.." name="nama"
onChange={this.HendelOnchange}
value={this.state.DataUserNew.nama} />
<label htmlFor="telpon">Telpon:</label>
<input type="text" id="telpon" placeholder="No.Telpon..." name="telpon"
onChange={this.HendelOnchange}
value={this.state.DataUserNew.telpon} />
<label htmlFor="alamat">Alamat:</label>
<input type="text" id="alamat" placeholder="Alamat..." name="alamat"
onChange={this.HendelOnchange}
value={this.state.DataUserNew.alamat} />
<button className="my-button btn-blue" onClick={this.HendelSimpan} >Simpan</button>
</div>
</div>
</div>
<div className="container">
<div className="my-table" >
<div>Total data {this.state.totalData} record</div>
<table>
<thead>
<tr>
<th>#ID</th>
<th>Nama</th>
<th>Telpon</th>
<th>Alamat</th>
<th>Options</th>
</tr>
</thead>
<tbody>
{
this.state.dataUser.map(dataUser => {
return (
<Mytable key={dataUser.id}
data={dataUser}
update={this.HendelUpdate} // Pemanggilan Hendel Update
/>
)
})
}
</tbody>
</table>
</div>
</div>
</div>
)
}
}
export default Crud;
- Belajar ReactJs
- Tutorial ReactJs Bahas Indonesia
- Menampilkan data pada react js
- map dan filter json pada react js
- Get data API dengan fetch di react js
- CRUD React-Js To API
- CRUD React-Js dengan API
- Crud React -Js dengan Database
- Crud React-js Dengan database JSON-Server
- Simpan data ke Database React js
- Update data React JS to API
- Notifikasi Berhasil React js
0 Response to "Tutorial CRUD React-Js API #3 : ( UPDATE ) Edit data Dengan DataBase Json-Server"
Posting Komentar