Saya memiliki beberapa data yang disebut stasiun yang merupakan larik yang berisi objek.
stations : [
{call:'station one',frequency:'000'},
{call:'station two',frequency:'001'}
]
Saya ingin merender komponen ui untuk setiap posisi array. Sejauh ini saya bisa menulis
var stationsArr = []
for (var i = 0; i < this.data.stations.length; i++) {
stationsArr.push(
<div className="station">
{this.data}
</div>
)
}
Dan kemudian render
render(){
return (
{stationsArr}
)
}
Masalahnya adalah saya mendapatkan semua data yang dicetak. Saya hanya ingin menunjukkan kunci seperti {this.data.call}
tetapi tidak mencetak apa-apa.
Bagaimana cara melakukan loop melalui data ini dan mengembalikan elemen UI baru untuk setiap posisi array?
javascript
reactjs
thatgibbyguy
sumber
sumber
stationsArr
alih-alihstations
di dalamrender
fungsi.Jawaban:
Anda dapat memetakan daftar stasiun ke ReactElements.
Dengan React> = 16, dimungkinkan untuk mengembalikan beberapa elemen dari komponen yang sama tanpa memerlukan pembungkus elemen html tambahan. Sejak 16.2, ada sintaks baru <> untuk membuat fragmen. Jika ini tidak berhasil atau tidak didukung oleh IDE Anda, Anda dapat menggunakannya
<React.Fragment>
. Antara 16.0 dan 16.2, Anda dapat menggunakan polyfill yang sangat sederhana untuk fragmen.Coba berikut ini
Jangan lupakan
key
atributnya!https://jsfiddle.net/69z2wepo/14377/
sumber
render
Fungsi Anda harus mengembalikan satu elemen.stations.map((station,index) => { })
bekerja dengan baik untuk sayaSaya punya jawaban yang mungkin tidak terlalu membingungkan untuk pemula seperti saya. Anda bisa menggunakan
map
metode render komponen.sumber
key
prop reactjs.org/docs/lists-and-keys.html#keysthis.data
mungkin berisi semua data, jadi Anda perlu melakukan sesuatu seperti ini:Atau Anda dapat menggunakan
map
fungsi panah dan jika Anda menggunakan ES6:sumber
return stations;
( codepen.io/pawelgrzybek/pen/WZEKWj )Ada beberapa cara yang bisa digunakan.
Solusi 1
Solusi 2
Tentu ada cara lain juga tersedia.
sumber