Rumah > Soal Jawab > teks badan
Saya mempunyai projek Next.js menggunakan Redux. Di kedai saya, saya mempunyai satu set keadaan yang dikemas kini melalui pengurang Redux. Pada asasnya tatasusunan keadaan yang saya kerap gunakan dalam beberapa komponen.
Dalam salah satu pengurang saya, saya menyusun tatasusunan ini. Tatasusunan diisi dengan objek dan saya menyusunnya mengikut sifat tertentu. Apabila saya console.log
tatasusunan itu nampaknya disusun dengan baik.
Dalam salah satu komponen saya, saya memetakan keadaan pengisihan ini. Saya telah memudahkan logik di sini.
names.map((p) => ( <div key={p.name}> {p.firstname} {p.lastname} </div> ));
Apabila HTML dipaparkan, semua elemen tidak berada dalam susunan yang betul. Beberapa dozen terakhir div
elemen kelihatan dipesan, tetapi dozen pertama kelihatan rawak.
Sebagai contoh, ini ialah tatasusunan.
let names = [ { "firstname": "Michael", "lastname": "Scott", }, { "firstname": "Jim", "lastname": "Halpert", }, { "firstname": "Dwight", "lastname": "Schrute", }, { "firstname": "Pam", "lastname": "Beesly", }, { "firstname": "Ryan", "lastname": "Howard", } ]
Selepas mengisih, pengelogan konsol akan mengembalikan hasil yang diharapkan. Ini ialah fungsi pengisihan.
names = names.sort((a, b) => a.firstname.localeCompare(b.firstname))
HTML yang dijana sepatutnya kelihatan seperti di bawah.
Sebaliknya, hasilnya kacau bilau atas sebab tertentu. Saya mengesyaki ini disebabkan oleh keadaan edit Redux, tetapi saya tidak tahu mengapa.
Setahu saya ini adalah pepijat yang meluas dan saya berbesar hati untuk menyediakan sebarang konteks tambahan jika kod saya terlalu dipermudahkan. Mana-mana jawapan akan sangat dihargai, tetapi sebarang jawapan yang membantu mempersempit di mana masalahnya akan sangat membantu.
P粉7656846022024-04-01 00:13:55
Saya menggunakan pengurang Redux untuk mengisih tatasusunan. Walaupun log konsol adalah betul, elemen dipaparkan dalam susunan yang salah. Walaupun saya masih tidak tahu mengapa ini berlaku, penyelesaiannya adalah untuk tidak mengisih kandungan dalam pengurang.