Taro.createRef()迁移到React.createRef()报错

fcg9iug3  于 2022-10-27  发布在  React
关注(0)|答案(6)|浏览(324)

相关平台

微信小程序

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

复现步骤

使用taro2的时候如下关键代码:

constructor(props) {
super(props);
this.barrageComp = Taro.createRef();
}

initBarrage() {
// 弹幕初始化
const barrageComp = this.barrageComp.current;
this.barrage = barrageComp.getBarrageInstance({
font: 'bold 16px sans-serif',
duration: 60,
lineHeight: 2,
mode: 'separate',
padding: [10, 0, 10, 0],
tunnelShow: false,
animationend: () => {
console.log('animationend');
setTimeout(() => {
this.setState({
barrageVisible: false
});
clearTimeout(barrageLoop);
}, 500);
}
})
}

在Taro3中使用React.createRef(),运行后会报错: a.getBarrageInstance is not a function,上述代码如何修改?

期望结果

无报错

实际结果

TypeError: a.getBarrageInstance is not a function

环境信息

Taro CLI 3.0.16 environment info:
    System:
      OS: Windows 10
    Binaries:
      Node: 14.4.0 - C:\Program Files\nodejs\node.EXE
      Yarn: 1.22.4 - C:\Users\zhaixuepan\AppData\Roaming\npm\yarn.CMD
      npm: 6.14.5 - C:\Program Files\nodejs\npm.CMD
tuwxkamq

tuwxkamq1#

按React的ref,调用上应该是 this.barrageComp.current.getBarrageInstance

kxeu7u2r

kxeu7u2r2#

现在代码是按照上面写的,但是会报错: a.getBarrageInstance is not a function

报错代码

rsaldnfx

rsaldnfx3#

上完整 demo 代码。

看 log ,ref.current 是 DOM,DOM 何来方法 getBarrageInstance ,组件示例才有业务方法。

kcugc4gi

kcugc4gi4#

现在代码是按照上面写的,但是会报错: a.getBarrageInstance is not a function

报错代码

解决了吗?我也遇到这个问题

s71maibg

s71maibg5#

微信小程序
React: 16.10.0
Taro CLI : 3.0.21
System: macOS 10.15.7

Taro.createRef()直接报错createRef not a funtion?

lo8azlld

lo8azlld6#

遇到同样的问题

相关问题