PeachScript / vue-infinite-loading

An infinite scroll plugin for Vue.js.
https://peachscript.github.io/vue-infinite-loading/
MIT License
2.67k stars 368 forks source link

TypeError: Cannot read property '_infiniteScrollHeight' of null #254

Open kvanska opened 5 years ago

kvanska commented 5 years ago

2.4.4

Vue.js version 2.6.10

Nuxt.js version 2.8

Steps to reproduce

When loading page without infinite-loading control and then navigatin to another page (SPA) that has infinite-loading, getting exception "TypeError: Cannot read property '_infiniteScrollHeight' of null"

What is Expected?

no exception

What is actually happening?

getScrollParent function recursively finds the parent element and for some reason when loading in SPA, parent node is null for:

on page refresh it's not null and parent is set to window
edwh commented 4 years ago

I hit this problem - thanks for the fix. Any chance of doing a release soon that includes this?

Frozire commented 4 years ago

I hit this problem too, @PeachScript - anything we can do to help push this change?

nicolashmln commented 4 years ago

Same problem here

jawn-ha commented 4 years ago

same problem

jankaderabek commented 4 years ago

Hi, I have the same problem. Is there any chance that #255 will be merged soon?

DomcaSuzi commented 4 years ago

I needed this fix too. For the time being I was using kuroskis forked repository with fix, but he deleted it. I created new forked repo with this fix #255 Feel free to rewrite your package.json dependencies to "vue-infinite-loading": "https://github.com/DomcaSuzi/vue-infinite-loading".

phyzerbert commented 4 years ago

I hit this problem - thanks for the fix. Any chance of doing a release soon that includes this?

Too many requests for this props force-use-infinite-wrapper="body"

andreasvirkus commented 3 years ago

@phyzerbert thanks! this solved it for me 🎉

iulo commented 3 years ago

@andreasvirkus What do you mean this solved it for me ?
you shouldn't use force-use-infinite-wrapper="body", it is the wrong way.

andreasvirkus commented 3 years ago

@iulo why is it the wrong way? It didn't degrade performance, didn't cause any extra bugs and solved the annoying errors. Checked all my boxes 🤷‍♀️ 🙊

iulo commented 3 years ago

@andreasvirkus when you set force-use-infinite-wrapper="body", ths scrollParent will set to body element, not the window. https://github.com/PeachScript/vue-infinite-loading/blob/4baed2bb078f076d3bff48c783ed324236630ed6/src/components/InfiniteLoading.vue#L318-L324

then getCurrentDistance will always return a number <=0 https://github.com/PeachScript/vue-infinite-loading/blob/4baed2bb078f076d3bff48c783ed324236630ed6/src/components/InfiniteLoading.vue#L292-L306

so the loading behavior will be triggered all the time until it is completed which I think it's not what you expected.

Try the demo below to see what happens. https://codepen.io/iulo/pen/xxqrzrZ