cari

Rumah  >  Soal Jawab  >  teks badan

Keadaan tindak balas tidak dipetakan dalam susunan yang betul

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粉476547076P粉476547076231 hari yang lalu385

membalas semua(1)saya akan balas

  • P粉765684602

    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.

    Dalam Redux anda harus mengisih perkara melalui pemilih dan bukannya secara langsung Dengan mengisih perkara dalam pemilih saya dan bukannya terus dalam pengurang saya, masalah diselesaikan dengan sendirinya.

    balas
    0
  • Batalbalas