天涯逐浪
天涯逐浪
  • 发布:2020-03-31 16:23
  • 更新:2021-04-06 15:17
  • 阅读:7734

app上在renderjs代码块里,uni.$on和uni.$emit无效

分类:uni-app

app上在renderjs代码块里,uni.$on和uni.$emit无效,在pc浏览器里运行时是可以的。其实就是想解决在官方renderjs示例中两个script间如何互相传递数据及互相调用对方的函数,及renderjs代码块和外部其他页面间如何互相传递数据及相互调用对方的函数。有知道的同学能回答一下吗?

2020-03-31 16:23 负责人:无 分享
已邀请:
h***@163.com

h***@163.com

现在只能通过这种方式调用另一个script的方法吗?

onClick(event, ownerInstance) {  
                // 调用 service 层的方法  
                ownerInstance.callMethod('onViewClick', {  
                    test: 'test'  
                })  
            }

我现在有个问题,项目的api请求使用了加解密,在jscore线程上加解密非常慢,想要用renderjs发起封装好的actions请求,请求结束并将解密成功后的数据传递给原来的script使用并渲染视图层,renderjs只做数据请求的加解密。。现在卡在通信问题这里了。。。

DCloud_UNI_GSQ

DCloud_UNI_GSQ

renderjs 不能使用 uni.$on和uni.$emit 通信,通信方式参考文档(文档中也有示例,示例中也有注释)。

  • 天涯逐浪 (作者)

    官方的文档和示例我看过许多遍了,但是都不适用于renderjs模块与其他非renderjs模块间的通讯,官方renderjs-echarts-demo的示例里只有一个通过按钮的点击事件中的参数来帮助调用非renderjs模块中的函数,但是太麻烦了,而且反过来,非renderjs模块中的代码如何调用renderjs模块中的函数始终没有给出示例。麻烦能给出一个实用些的示例或建议

    2020-03-31 21:11

  • 天涯逐浪 (作者)

    官方renderjs-echarts-demo的示例下方的评论中也有不少人在问与我相同的问题,希望能帮忙给出一个解决方案,估计应该能帮助到不少人,谢谢

    2020-03-31 21:13

  • DCloud_UNI_GSQ

    回复 天涯逐浪: 点击按钮“更新数据”就是

    2020-04-01 12:56

  • 天涯逐浪 (作者)

    回复 DCloud_UNI_GSQ: 又仔细研究了下那个官方示例,确实给了我些新的线索,更新数据按钮确实能传递数据进入renderjs模块,如果在传递的参数里把想调用的函数名字和函数参数都以更新数据的方式传递进去,就可以调用起renderjs模块内部的函数并传值进去。这样虽然绕了些,但还是可以实现。谢谢了,如果后面能提供更加简便的方式就更好了。毕竟用这套框架的人大多都是前端出身,而for web 的库有很多,估计后面renderjs的需求还是会很大的

    2020-04-01 23:58

  • 1***@163.com

    回复 天涯逐浪: 非renderjs模块中的代码调用renderjs模块中的函数会导致通信受损,所以不这样做

    2020-08-07 14:47

  • 1***@163.com

    回复 1***@163.com: renderjs运行在视图层,非renderjs模块调用renderjs方法,相当于逻辑层直接操作视图层,所以会导致通信受损

    2020-08-07 14:49

  • 1***@163.com

    回复 天涯逐浪: 更新数据按钮确实能传递数据进入renderjs模块,如果在传递的参数里把想调用的函数名字和函数参数都以更新数据的方式传递进去,就可以调用起renderjs模块内部的函数并传值进去(这样做又回去了,相当于逻辑层和视图层直接通信)

    2020-08-07 14:51

  • 1***@163.com

    放空一下,不要想什么参数,参数还是逻辑层和视图层的关系,这样renderjs没意义

    2020-08-07 14:53

4***@qq.com

4***@qq.com

怎么才能将renderjs里改变的数据,传出去呢

  • w***@126.com

    通过逻辑层的实例的callMethod方法来调用逻辑层的方法,通过参数传递出去。

    2020-07-20 16:24

liuhui_1

liuhui_1

renderjs如何接收到父组件传递过来的数据,我这边的图标是父组件的socket数据传递过来的 h5可以接受到数据 APP就接受不到数据了

  • 1***@qq.com

    我也遇到了这个问题

    2020-06-29 09:29

  • 6***@qq.com

    回复 1***@qq.com: 我也是!请问有解决吗

    2020-07-03 20:30

  • 1***@163.com

    不可直接访问逻辑层数据 :prop="option"绑定一下才行,不绑定在h5可以,但是在app不行,因为h5没有通信损耗,app有损耗

    2020-08-07 14:55

明l天

明l天

你好,请教两个问题
1.官方示例this.option可以直接访问到非renderjs模块data里定义的option,我写的在h5端可以,app打印出来是undefined

  1. 如果没有点击怎么调用service层里的方法
    谢谢
    官方文档示例看了几十遍。。
  • h***@163.com

    h5上是能访问到的,app上不行,因为renderjs在app上是运行在webview上,访问不到非renderjs上的data数据。你可以看这个:https://ask.dcloud.net.cn/question/97817

    2020-06-11 10:20

  • 明l天

    回复 h***@163.com: 好的 谢谢

    2020-06-15 10:32

  • 1***@163.com

    回复 h***@163.com: 因为app有独立的jscode和视图层渲染分开的

    2020-08-07 14:56

  • 4***@qq.com

    我想请问一下。。onClick只能在按钮上被动调用,能不能让这个函数在非renderjs上的mounted主动调用?或者说怎么把我想要的数据传出来。。

    2020-08-13 17:40

  • 1***@qq.com

    回复 4***@qq.com: 同问,请问你解决了吗

    2020-08-31 15:11

  • 4***@qq.com

    回复 1***@qq.com: 同问,服务层怎么主动调用视图层

    2020-12-01 14:24

9***@qq.com

9***@qq.com - 寻女友,92-郑州-男-本科(176cm/70kg),郑州二七区有房无贷。

uniapp里的数据无法直接传到renderjs模块里,这也太扯了吧

  • DCloud_UNI_GSQ

    未观测的不会传过去,观测的会

    2020-12-22 18:01

hiker7

hiker7

如何将renderjs里面的数据更新到外面的data上,除了用事件

  • 1***@qq.com

    您好 请问您找到解决方案了吗

    2021-09-03 22:17

降龙十八掌

降龙十八掌

遇到renderjs模式使用问题,在renderjs模式下uni.getStorageSync无法使用,子组件也无法接收到父组件的传参。。。。请求哪位大咖解惑,,,,问题已经卡了很久了,,,只想页面打开自动从父组件传递一个url地址,死活不行。。。

该问题目前已经被锁定, 无法添加新回复