Taro 遇到的坑
2024-08-29 22:35:59
1.createSelectorQuery无法获取节点宽高
业务场景: 列表需要在最后一页底部显示 ‘我是有底线的~’ 提示,但是如果数据只有一页且不占满屏幕的话,就不显示。需要判断 ‘我是有底线的~’ 这个节点距离顶部的top值是否超出screenHeight。
因为小程序有很多列表需要用到 ‘我是有底线的~’ ,所以把它封装组件。然后使用
//创建节点选择器
var query = wx.createSelectorQuery();
//选择id
var that = this;
query.select('.content').boundingClientRect(function (rect) {
console.log(rect)
}).exec();
结果返回 null !!!
期初以为是动态获取数据,创建节点的原因,获取不到节点。后测试选择定高节点也无法获得宽高,还用了 ref的方法,只能取到节点,无法获得宽高。
后来终于找到问题所在
createSelectorQuery只能选择内置组件,不能选择自定义组件。
将 id 和对应的 query 逻辑放子组件里,自定义组件还需要把this.$scope传进去
父组件:
import Taro, { Component } from '@tarojs/taro'
import { View } from '@tarojs/components'
import Child from '../../components/child/child' export default class PageView extends Component {
render () {
return <View>
<Child></Child>
</View>
}
}
子组件:
import Taro, { Component } from '@tarojs/taro'
import { View } from '@tarojs/components' export default class Child extends Component {
componentDidMount () {
const query = Taro.createSelectorQuery().in(this.$scope)
query.select('.line').boundingClientRect().exec(res => {
console.log(res);
})
} render() {
return (
<View class='line'>我是有底线的~</View>
)
}
}
2.
最新文章
- java 中获取2个时间段中所包含的周数(股票的周数->;从周六到周五)
- 读懂IL代码就这么简单(三)完结篇
- mysql mha 主从自动切换 高可用
- PHP“Cannot use object of type stdClass as array” (php在调用json_decode从字符串对象生成json对象时的报错)
- iomanip.h
- 关于java里小数点的保留
- L1-Day13
- Python进阶4---Python的文件IO
- 2018.5.15Html标签初学
- 初学javascript《一》break和continue的标签问题
- MySQL索引原理以及查询优化
- Scrapy基础(十三)————ItemLoader的简单使用
- 笨办法06字符串(string)和文本
- linux mongodb 及php-mongo扩展安装
- WPF 程序在 Windows XP 下报错:The image format is unrecognized.
- hdu4719 Oh My Holy FFF 线段树优化dp
- Python中根据提供的日期,返回是一年中的第几天
- SOJ 1089 FatMouse的奶酪 暴力
- NET Framework安装失败的麻烦
- UCASE() 函数