问题模块 框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
API和组件 微信小程序 Bug createIntersectionObserver 客户端 6.7.0 2.3.2
因为首页加载的内容太多了,就打上动态加载模块的东西,就想着能不能利用这个东西去做动态加载
之前看到文档里面有写,如果在组件内部的话就使用this.createIntersectionObserver去创建这个observer,但是发现这样在微信小程序的自定义组件里面还是无法observer。
因为这个如果换成wx.createIntersectionObserver在Page页面是可以监听得到的,就想问下是哪里的写法写错了么。
另外想问下这种写法是有办法监听父级的viewPort的明天,还是说只能监听组件内部的
代码片段已经在上面了
index.wxml
C.wxml
C
C.js
Component({
attached () {
let observer = this.createIntersectionObserver( {
thresholds: [0.2, 0.5]
}).relativeTo('.C').relativeToViewport()
observer.observe('.observer', (res) => {
console.log(res)
})
console.log(observer)
console.log(this)
}
})
C.wxss
.C {
height: 1000rpx;
}
.content {
height: 2000rpx;
}
.C-Observer {
height: 10rpx;
}
.header {
height: 1000rpx;
}
代码片段
https://developers.weixin.qq.com/s/uq5XjNmn7j3W
微信小程序开发问题解答
微信小程序开发者回答:
https://developers.weixin.qq.com/s/uu5U0NmN7U3p
要传this,不能relate多个?ready
微信小程序开发者回答:
谢谢,那样的话这个问题其实应该是跟我用了attached有关系,因为在attached的时候组件布局还未完成,节点信息还拿不到
微信小程序开发者回答:
嗯,看起来像是这个原因
微信小程序开发者回答:
但是在组件里面,好像没有办法知道组件自己是否已经进入页面可视区域,组件只能监听组件里面情况
微信小程序开发者回答:
咦。。我的可以呢
微信小程序开发者回答:
有个代码片段看下吗~
微信小程序开发者回答:
没拆出来。。我的页面是自己做的tarbar,然后每个tarbar的页面都是单独的自定义组件。。现在页面里都还是对的
微信小程序开发者回答:
是在组件里面做这个observer,然后直接releativeTo父级的一个wrap节点,进入可视区域就取消这个observer
是这样的么,
因为多模块加载的话page里面是一个个独立的组件,就是不知道这样可不可以做
微信小程序开发者回答:
你组件里使用有问题的,有代码片段吗?
微信小程序开发者回答:
https://developers.weixin.qq.com/s/T728gSmx7p3H
我想要的效果是这样的,
page里面有A/B/C/D/E/F/G/H模块,现在要做的是在组件内部用behavior的方式注入ready方法,监听这个组件是否在page上已经可视,如果可视的话,就显示这个组件里面的内容,否则就不显示
目的是为了减少模块的初次加载,提高渲染速度
微信小程序开发者回答:
我看了,你的 c-observe 这个样式的view的高度是0。。无论什么时候都不会出现在视野里啊。。就算滚到他父标签的位置了。。因为他没高度,所以不会触发哦
微信小程序开发者回答:
https://developers.weixin.qq.com/s/rH3ZXSmk7g3j
微信小程序开发者回答:
晓得晓得,那我继续研究一下,谢谢你了
微信小程序开发者回答:
加油~ 完成组件化了 记得来社区发分享帖哦
本文网址:http://www.91bianli.com/weixinxiaochengxu/34434.html