Pada dasarnya, ketika saya menekan sebuah tombol, fungsi saya akan mulai mendengarkan perubahan koordinat dan menggabungkan data yang baru dikumpulkan ke dalam array.
Saat tombol ditekan lagi, pendengar akan dikeluarkan. Pengguna dapat menekan tombol dan mulai mendengarkan kumpulan koordinat baru lagi. Mereka dapat melakukan hal ini berulang kali.
this.state = {
pathArray: [], // originally a 1D array, should become 2D as user keep using the app
pathCount: 0,
}
Seperti inilah tampilan array terakhir sehingga saya dapat melanjutkan ke bagian rendering. Saya ingin dapat secara dinamis membuat indeks baru dalam array sehingga data baru akan dimasukkan ke bagian bawah daftar.
Bagaimana saya bisa membuat array baru di dalam array root ketika tombol ditekan, dan terus menambahkan objek ke dalam array anak sampai tombol ditekan lagi. Jika tombol ini ditekan lagi, array anak baru akan dibuat lagi, dan prosesnya terus berjalan.
pathArray = [
[
{ lat: 0, long: 0 },
{ lat: 1, long: 2 },
],
[
{ lat: 0, long: 0 },
{ lat: 1, long: 2 },
],
]
onButtonPressed = () => {
const { running } = this.state
if (!this.state.running) {
this.followWatchCoords() // start collecting data
} else {
this.stopFollowing() //stop collecting data
}
}
followWatchCoords = () => {
this.followUserWatchID = navigator.geolocation.watchPosition(({ coords }) => {
this.calculateDistance(coords)
}, null, GEOLOCATION_SETTINGS)
}
calculateDistance = (coords) => {
const { latitude, longitude } = coords
const positionLatLong = pick(coords, ['latitude', 'longitude'])
let newArr = this.state.pathArray.slice(); //copy array to mutate
newArr.push(positionLatLong)
this.setState({
pathArray: newArr,
})
}
pathArray.push([])
. Untuk menambahkan elemen dalam array yang baru dibuat ini:pathArray[pathArray.length - 1].push({lat: 1, long: 2})
. - person abhishekkannojia   schedule 30.05.2017