Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Taro 3.0 没有 useScope 这个Hook了么?该怎么替代 #7795

Closed
wyx1818 opened this issue Oct 7, 2020 · 12 comments
Closed

Taro 3.0 没有 useScope 这个Hook了么?该怎么替代 #7795

wyx1818 opened this issue Oct 7, 2020 · 12 comments
Labels
F-react Framework - React T-weapp Target - 编译到微信小程序 V-3 Version - 3.x

Comments

@wyx1818
Copy link

wyx1818 commented Oct 7, 2020

相关平台

微信小程序

小程序基础库: 2.13.1
使用框架: React

复现步骤

https://taro-docs.jd.com/taro/docs/hooks/#usescope
这里没有 useScope 相关说明了,那么该怎么替代 this.$scope

期望结果

使用函数组件相关 hook 实现class组件中的 this.$scope

实际结果

在 @tarojs/taro 中找不到 useScope 相关hook了

环境信息

Taro v3.0.14


  Taro CLI 3.0.14 environment info:
    System:
      OS: macOS 10.15.7
      Shell: 5.7.1 - /bin/zsh
    Binaries:
      Node: 12.18.3 - ~/.n/bin/node
      npm: 6.14.8 - ~/.n/bin/npm
    npmPackages:
      @tarojs/components: 3.0.13 => 3.0.13
      @tarojs/mini-runner: 3.0.13 => 3.0.13
      @tarojs/react: 3.0.13 => 3.0.13
      @tarojs/runtime: 3.0.13 => 3.0.13
      @tarojs/taro: 3.0.13 => 3.0.13
      @tarojs/webpack-runner: 3.0.13 => 3.0.13
      babel-preset-taro: 3.0.13 => 3.0.13
      eslint-config-taro: 3.0.13 => 3.0.13
      react: ^16.10.0 => 16.13.1
    npmGlobalPackages:
      typescript: 4.0.2
@taro-bot2 taro-bot2 bot added F-react Framework - React T-weapp Target - 编译到微信小程序 V-3 Version - 3.x labels Oct 7, 2020
@luckyadam
Copy link
Member

Taro3 不需要 scope 了,相关的 API 也不用传入了

@ilovepeppa
Copy link

Taro3 不需要 scope 了,相关的 API 也不用传入了

那应该怎么在函数式组件中使用this.$scope呢

@liuhuapiaoyuan
Copy link

不需要scope的,因为已经不再编译成小程序的components的组件规范

@huanz
Copy link
Contributor

huanz commented Oct 23, 2020

createSelectorQuery 如何限制获取组件内的 节点呢?

@guozefei
Copy link

在使用小程序自定义tabbar 的时候也要用 this.$scope.getTabBar(),没有 useScope 怎么获取呢

@shineSnow
Copy link

把以前的方案废除了,现在新的方案是什么?useScope 我看源码返回了一个undefined?

@bo3enwang
Copy link

bo3enwang commented Dec 13, 2020

可以使用 useRef 替代

const ref = useRef();

<View ref={ref }>
</View>

可以限制获取组件内节点

貌似不行。ref获取到的是Taro Element 实例

@SyMind
Copy link
Member

SyMind commented Mar 18, 2021

我想这个一个非常重要的问题,期待过渡方案。

@MayRain1999
Copy link

同问+1

@wyx1818 wyx1818 closed this as completed Apr 16, 2021
@cdoco
Copy link

cdoco commented May 16, 2021

有解决方案吗?使用 boundingClientRect 获取不到元素,看文档需要使用 scope,,但是这个函数被删了...

@niexq
Copy link
Contributor

niexq commented May 27, 2021

🧯 使用

Taro.getCurrentInstance().page

🍭🍬 官方文档:https://nervjs.github.io/taro/docs/migration/#scope-%E5%92%8C-componenttype

@vivialex
Copy link

vivialex commented Nov 2, 2021

请问下,目前taro版本3.3.12中,开发微信小程序插件时,怎么对外层抛出事件,以前taro2.0可以通过useScope获取triggerEvent方法,taro3可以通过什么方式获取

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
F-react Framework - React T-weapp Target - 编译到微信小程序 V-3 Version - 3.x
Projects
None yet
Development

No branches or pull requests