vue-infinite-scroll icon indicating copy to clipboard operation
vue-infinite-scroll copied to clipboard

单页面应用里面,重复请求接口

Open hawx1993 opened this issue 7 years ago • 8 comments

单页面应用里面,我从a页面进入b页面,在b页面里请求b页面的接口,但是不知道为什么这时候也会请求a页面的接口。很怪异。a和b页面都是这么添加的:

 <div v-infinite-scroll="loadMore" infinite-scroll-disabled="busy" infinite-scroll-distance="10">
            ...
</div>

 directives: {infiniteScroll};//使用Vue.use(infiniteScroll)也会这样

但是如果我直接在b页面(或者说在b页面进行刷新),而不是从a进入b,就不会重复去请求a页面的接口了。

hawx1993 avatar Mar 21 '17 03:03 hawx1993

我也遇到这种情况,单页面中混入另外一个页面只要高度发生变化,就会触发v-infinite-scroll事件

safaring avatar Mar 27 '17 01:03 safaring

目前我的解决办法是:通过 activated/deactivated 时设置 infinite-scroll-disabled 的值来激活、停用infinite scroll

safaring avatar Mar 27 '17 03:03 safaring

@safaring 我也遇到了你的这个问题 先按你说的方法改过来了

lisleyang avatar Mar 28 '17 06:03 lisleyang

具体解决代码有吗 能否提供参考

617450941 avatar Apr 05 '17 02:04 617450941

这是因为2个页面共享了同一个scrollTarget,在一般页面里也就是window。 你可以在单页中手动设置scrollTarget,将滚动限定在一个固定高度的容器中,譬如div(position:absolute;left,right,top,bottom=0),这样可以将scroll listener绑定在2个不同的scrollTarget上,因此在单个页面中滚动不会触发另一个页面的scroll并触发loadMore。

thkdog avatar Apr 19 '17 15:04 thkdog

现在我依旧遇到这个情况,来更新下。在单页面中,我切换数据,loadMore()不执行,通过楼上设置 infinite-scroll-disabled 的值来激活、停用infinite scroll 会遇到如果用户未滑动页面的时候,重新加载数据,loadMore依旧不执行。

暂时的解决办法分2个步骤 1.设置 infinite-scroll-disabled 的值来激活、停用infinite scroll 2.给html或者body属性在点击tag时向上或者向下滑动1px

bsxz0604 avatar May 02 '17 16:05 bsxz0604

没用啊,把infinite-scroll-disabled,activated(进入)设置false,deactivated(离开)时设置true还是会调用上一个页面的loadmore方法啊

shuangbofu avatar May 20 '17 13:05 shuangbofu

我是从路由‘/’默认页面进入其他页面 在其他页面中重复请求默认页面中的接口 请问下大神们是什么原因

dongqudamage avatar Aug 22 '18 08:08 dongqudamage