android组件扩展无法提供方法供weex调用?

根据文档已经实现了一个简单的组件扩展,属性通过@WXComponentProp注解没有问题,可以正常使用,但是使用
@JSMethod来注解的方法却无法再vue中调用,控制台log为:

ReportException : Exception: TypeError: this.$refs.lists.test is not a function. (In 'this.$refs.lists.test()

这是我在android端的test方法

 @JSMethod
public void test(){
    Toast.makeText(context, "test!!", Toast.LENGTH_SHORT).show();
}

这是我在vue里的部分代码

<list-view :data="test" class="list_view" ref="lists"></list-view>

使用:

this.$refs.lists.test()

这里是在控件完全渲染出来之后才调用的,this.$refs.lists consolo.log了一下,是object,说明组件对象是确实拿到了的....

以下是官方文档:

clipboard.png

另外偷偷吐槽下官方文档,this.$el根本来组件都拿不到,无语...

阅读 3.1k
3 个回答

用法错误,应该是this.$refs.lists[0].test(),
this.$refs.名称 是一个数组,this.$refs.名称[0]才是组件,才能访问@JSMethod公布的方法

新手上路,请多包涵

我也碰到这个问题了,,请问你解决了吗?

说了你可能不信,在自定义的component上加上@Component(lazyload = false)注解就好了。lazyload取值可根据情况定。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题