Vux: Scroller tidak dapat menyegarkan dengan benar

Dibuat pada 18 Apr 2016  ·  4Komentar  ·  Sumber: airyland/vux

Versi 0.0.105

Chrome PC

Reproduksi

Tarik scroller ke bawah dan tarik cepat ke atas sebelum pulldown:reset selesai , scroll bar tidak dapat disegarkan dengan benar.

<scroller
  v-ref:scroller
  lock-x scrollbar-y
  use-pulldown
  :pulldown-config={...}
  <strong i="10">@pulldown</strong>:loading="load">
  <div>
    <div v-for="item in list">...</div>
  </div>
</scroller>
load(uuid){
  this.$http.get(...)
    .then(({data:{list}}})=>{
      this.list = list
        this.$nextTick(()=>{
          this.$broadcast('pulldown:reset',uuid)
        })
      }
    })
}

Selain itu, setelah mendorong data secara manual ke daftar, apakah ada cara untuk menyegarkan bilah gulir? Metode saat ini adalah memanggil scroller._xscroll.render(), yang tidak terlalu bagus.

to be repro

Komentar yang paling membantu

Yang terbaik adalah mencadangkan ketinggian gambar, dan akan merepotkan untuk mengatur ulang beberapa gambar beberapa kali.
Sekarang event scroller:reset telah ditambahkan, Anda juga bisa mendapatkan komponen ref untuk memanggil metode reset.

Semua 4 komentar

"Tarik penggulung ke bawah, dan tarik ke atas dengan cepat sebelum pulldown:reset selesai , bilah gulir tidak dapat disegarkan dengan benar" Saya tidak dapat mereproduksi operasi ini. Mungkin saya tidak memahaminya dengan benar?

Penyegaran aktif benar-benar bukan solusi yang elegan. Jika Anda langsung menambahkan metode render ke scroller, tambahkan referensi ke scroller saat memanggil, lalu panggil metode render.

gif
Saat Anda menarik ke bawah untuk menyegarkan, geser ke atas dengan cepat. Setelah data dimuat, bilah gulir tidak akan menyegarkan.

Pulldown:reset dan pullup :reset hanya dipanggil selama operasi penyegaran pull-down atau pull-up. Tambahkan acara scroller:reset untuk penyegaran aktif . Apakah sesuai? Sangat cocok untuk scroller yang tidak memiliki pulldown atau pullup.

Ada juga masalah saat memuat gambar, setelah gambar dimuat, scroller tidak dapat me-refresh scroll bar sesuai dengan tinggi gambar, juga perlu me-refresh secara manual atau memesan ketinggian gambar.

Yang terbaik adalah mencadangkan ketinggian gambar, dan akan merepotkan untuk mengatur ulang beberapa gambar beberapa kali.
Sekarang event scroller:reset telah ditambahkan, Anda juga bisa mendapatkan komponen ref untuk memanggil metode reset.

Beberapa gambar dapat digunakan untuk memantau pemuatan semua gambar dan kemudian mengatur ulang lagi. Anda dapat melihat alat kecil saya: https://github.com/bammoo/load-image/blob/master/index.js

Adegan sebenarnya:

loadAllImages(imgurlList, null, () => {
  // this.$refs.scroller.reset() 
  this.$broadcast('pullup:reset', uuid)
})

Atau, Anda dapat menggunakan alat di atas untuk memuat semua gambar, dan setelah pemuatan selesai, tambahkan data ke larik loop v-for.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat