reactivesearch
reactivesearch copied to clipboard
Vue - AutoScrollTop on pagination not working and pageChange event not emitted
Affected Projects Vue.JS
Library Version: 1.29.0
Describe the bug
When clicking on a page number, the ReactiveList component should scroll to top (by default) and should send a pageChange event. In my case, the scroll is not done and I never get the pageChange event.
I think I found the problem in the code of the /packages/vue/src/components/result/ReactiveList.jsx component:
hits(newVal, oldVal) {
this.$emit('data', this.getData());
if (this.shouldRenderPagination) {
// called when page is changed
if (this.isLoading && (oldVal || newVal)) {
if (this.hasPageChangeListener) {
this.$emit('pageChange', this.currentPageState + 1, this.totalPages);
this.$emit('page-change', this.currentPageState + 1, this.totalPages);
} else if (this.scrollOnChange) {
window.scrollTo(0, 0);
}
}
I can be wrong but I think that the line
if (this.isLoading && (oldVal || newVal)) {
should be
if (!this.isLoading && (oldVal || newVal)) {
It's missing a NOT before this.isLoading. Else it will never execute the code that is following the condition because the loading is finished since a while at this time.