收藏
回答

在timing的回调函数中不能通过runOnJS继续调用自定义组件内其他函数?

如题。

我在自定义组件的methods中的一个方法中编写了一段timing

this._x.value = wx.worklet.timing(targetX, {

          duration: 300,

        }, (res) => {

          'worklet'

          console.log('res', res)

          wx.worklet.runOnJS(that.showDialogContent.bind(that))()

        })

运行结果是

[ui] res true

2[ui] Javascript worklet error

app-bar/components/dev-log/dev-log.ts (108:11):1: TypeError: Cannot read property 'bind' of undefined

TypeError: Cannot read property 'bind' of undefined

    at Object._f (app-bar/components/dev-log/dev-log.ts (108:11):1:116)

    at MutableValue.workletValueSetter (src/worklet/core.ts (128:0):1:585)(env: Windows,mp,1.06.2403282; lib: 3.4.0)

很神奇,不知道是什么原因导致无法调用。

回答关注问题邀请回答
收藏

1 个回答

  • 夏味
    夏味
    03-29

    看错误提示是 this 指向的问题,找不到 showDialogContent 方法

    建议在自定义组件的生命周期 created 或者 attached 中进行 bind


    03-29
    有用
    回复 2
    • 带妹狂熊
      带妹狂熊
      发表于移动端
      03-29
      showDialogContent是定义在methods中的一个方法,而这段timing的内容是触摸事件触发的
      03-29
      回复
    • 夏味
      夏味
      03-29回复带妹狂熊
      提供个代码片段?
      03-29
      回复
登录 后发表内容