jd-opensource / jd-opensource/taro-ui
delayQuerySelector 方法缺少作用域
- Dominant language
- TypeScript
- Stars
- 4.7k
- Forks
- 740
- PR merge metrics
- No merged PRs in 30d
Description
**问题描述**
在当前页面调取上个页面的方法 `delayQuerySelector` 会在当前页面作用域下创建 `SelectorQuery` 导致获取不到上个页面实际的节点。
next 版本缺少 `scope`
https://github.com/NervJS/taro-ui/blob/09f5296eda41b990f7ff9ebb5e1e0b848ac94019/packages/taro-ui/src/common/utils.ts#L14-L29
v2.3.4 老版本则有 `Taro.createSelectorQuery().in($scope)`
https://github.com/NervJS/taro-ui/blob/abb90cd50519fe7fa182e38371fee46e53182128/src/common/utils.ts#L18-L36
**复现步骤**
1. 小程序创建两个页面,一个一级页面、另一个为二级页面
2. 一次进入到二级页面
3. 使用 `Taro.getCurrentPages()` 获取一级页面,也就是上个页面
4. 调用一级页面的一些方法,这些方法里有获取一级页面的节点代码块
5. 一级页面的节点将会获取不到,因为作用域指向里二级页面。
**期望行为**
希望不管在哪个页面使用 `delayQuerySelector` 方法,作用域都会指向当前页面
**报错信息**
获取不到节点
**系统信息**
```
👽 Taro v3.0.0-rc.2
Taro CLI 3.0.0-rc.2 environment info:
System:
OS: macOS 10.15.5
Shell: 5.7.1 - /bin/zsh
Binaries:
Node: 14.2.0 - /usr/local/bin/node
Yarn: 1.17.3 - /usr/local/bin/yarn
npm: 6.14.5 - /usr/local/bin/npm
npmPackages:
@tarojs/cli: 3.0.0-rc.2 => 3.0.0-rc.2
@tarojs/components: 3.0.0-rc.2 => 3.0.0-rc.2
@tarojs/mini-runner: 3.0.0-rc.2 => 3.0.0-rc.2
@tarojs/react: 3.0.0-rc.2 => 3.0.0-rc.2
@tarojs/runtime: 3.0.0-rc.2 => 3.0.0-rc.2
@tarojs/taro: 3.0.0-rc.2 => 3.0.0-rc.2
@tarojs/webpack-runner: 3.0.0-rc.2 => 3.0.0-rc.2
babel-preset-taro: 3.0.0-rc.2 => 3.0.0-rc.2
eslint-config-taro: 3.0.0-rc.2 => 3.0.0-rc.2
react: 16.13.1 => 16.13.1
taro-ui: ^3.0.0-alpha.2 => 3.0.0-alpha.2
```
**补充信息**
无
Contributor guide
Assessment
This issue has not been assessed yet.