taro & querySelector & refs

delayQuerySelector

https://github.com/NervJS/taro-ui/blob/dev/src/common/utils.ts#L18


function delayQuerySelector(
self,
selectorStr: string,
delayTime = 500
): Promise<Array<execObject>> {
const $scope = ENV === Taro.ENV_TYPE.WEB ? self : self.$scope
const selector: SelectorQuery = Taro.createSelectorQuery().in($scope) return new Promise(resolve => {
delay(delayTime).then(() => {
selector
.select(selectorStr)
.boundingClientRect()
.exec((res: Array<execObject>) => {
resolve(res)
})
})
})
}

refs

https://nervjs.github.io/taro/docs/ref.html

https://nervjs.github.io/taro/docs/ref.html#通过函数创建-ref

函数创建 ref

// 不管在任何情况下,Taro 都推荐你使用函数的方式创建 ref

// 自定义组件, 父组件
class MyComponent extends Component { roar () {
// 会打印 `miao, miao, miao~`
this.cat.miao()
} refCat = (node) => this.cat = node // `this.cat` 会变成 `Cat` 组件实例的引用 render () {
return <Cat ref={this.refCat} />
}
} // 子组件
class Cat extends Component {
miao () {
console.log('miao, miao, miao~')
} render () {
return <View />
}
}

Taro.createRef

// 自定义组件, 父组件
class MyComponent extends Component { this.cat = Taro.createRef() roar () {
// 会打印 `miao, miao, miao~`
this.cat.current.miao()
} render () {
return <Cat ref={this.cat} />
}
} // 子组件
class Cat extends Component {
miao () {
console.log('miao, miao, miao~')
} render () {
return <View />
}
}

bug

https://github.com/NervJS/taro/issues/4832

https://github.com/NervJS/taro/issues/4851

https://github.com/NervJS/taro/issues/610



taro & querySelector & refs的更多相关文章

  1. Taro 3.x in Action

    Taro 3.x in Action React, 小程序 https://taro-docs.jd.com/taro/docs/README Taro Next 跨端, 跨框架 Taro 是一个开放 ...

  2. taro refs引用

    创建 Refs Taro 支持使用字符串和函数两种方式创建 Ref: 使用字符串创建 ref 通过函数创建 ref(推荐) 你也可以通过传递一个函数创建 ref, 在函数中被引用的组件会作为函数的第一 ...

  3. Taro Next H5 跨框架组件库实践

    作者:凹凸曼 - JJ Taro 是一款多端开发框架.开发者只需编写一份代码,即可生成各小程序端.H5 以及 React Native 的应用. Taro Next 近期已发布 beta 版本,全面完 ...

  4. $refs的用法及作用

    获取DOM元素,一般用document.querySelector获取这个dom节点,然后在获取input的值 但是用ref绑定之后,就不需要在获取dom节点了,直接在上面的input上绑定input ...

  5. Vue.js中ref ($refs)用法举例总结

    原文地址:http://www.cnblogs.com/xueweijie/p/6907676.html <div id="app"> <input type=& ...

  6. vue $refs的基本用法

    <div id="app"> <input type="text" ref="input1"/> <butto ...

  7. vue & button & refs & click & bug

    vue & button & refs & click & bug $refs.btn.click() ??? vue & refs $refs.btn.$em ...

  8. Taro自定义Modal对话框组件|taro仿微信、android弹窗

    基于Taro多端实践TaroPop:自定义模态框|dialog对话框|msg消息框|Toast提示 taro自定义弹出框支持编译到多端H5/小程序/ReactNative,还可以自定义弹窗类型/弹窗样 ...

  9. vue中$refs的用法及作用详解

    一般来讲,获取DOM元素,需要使用document.querySelector('#input1')方法去获取dom节点,然后再获取input1的值. 但是使用了ref绑定之后,我们就不需要再获取do ...

随机推荐

  1. AWS Lightsail 开启 Root 登陆权限

    将下面代码中的第一句中的 Passwd 改为自己将要设置的密码,否则默认 root 密码为 Passwd. #!/bin/bash echo root:Passwd |sudo chpasswd ro ...

  2. 配置完xadmin源码包后启动报错“ Apps aren't loaded yet.”

    raise AppRegistryNotReady("Apps aren't loaded yet.") django.core.exceptions. 碰到这种情况就要查看下是否 ...

  3. 我用了半年的时间,把python学到了能出书的程度

    Python难学吗?不难,我边做项目边学,过了半年就通过了出版社编辑的面试,接到了一本Python选题,并成功出版. 有同学会说,你有编程基础外带项目实践机会,所以学得快.这话不假,我之前的基础确实加 ...

  4. 2019牛客暑期多校训练营(第九场)E.All men are brothers(并查集+排列组合)

    题意:现在有n个集合 每个集合大小为1 现在你可以把集合合并m次 每次会告诉你哪个集合合并 让你输出每次从不同的四个集合里各选出四个的组合方案 思路:我们可以想到用并查集模拟集合的合并 对于方案数 我 ...

  5. Codeforces750E. New Year and Old Subsequence (线段树维护DP)

    题意:长为2e5的数字串 每次询问一个区间 求删掉最少几个字符使得区间有2017子序列 没有2016子序列 不合法输出-1 题解:dp i,p(0-4)表示第i个数匹配到2017的p位置删掉的最少数 ...

  6. AtCoder Beginner Contest 171

    比赛链接:https://atcoder.jp/contests/abc171/tasks A - αlphabet 题意 给出一个字母,如果为大写输出 'A',如果为小写输出 'a' . 代码 #i ...

  7. HDU4622 Reincarnation【SAM】

    HDU4622 Reincarnation 给出一个串,每次询问其一个子串有多少不同的子串 按每个后缀建立\(SAM\)不断往后加字符,然后记录答案,查询的时候直接用即可 //#pragma GCC ...

  8. vector总结

    vector是不定长数组,具有静态数组的稳定性和动态分配内存的灵活性,在赛场上不失为指针之外牺牲部分时间的保险之举. 本文先介绍一些vector常用的函数(部分借鉴一篇博客中的内容 链接),并以此为铺 ...

  9. Codeforces Round #652 (Div. 2) E. DeadLee 贪心

    题意: 派会上有n种食物,每种食物有wi份.有m个朋友,每一个朋友有两种他喜欢吃的食物xi,yi.你需要判断他的朋友是否都能吃到食物.如果都能吃到食物,那么要输出朋友来的顺序,不能的话输出" ...

  10. POJ 2195 & HDU 1533 Going Home(最小费用最大流)

    这就是一道最小费用最大流问题 最大流就体现到每一个'm'都能找到一个'H',但是要在这个基础上面加一个费用,按照题意费用就是(横坐标之差的绝对值加上纵坐标之差的绝对值) 然后最小费用最大流模板就是再用 ...