前端打工人
前端打工人
  • 发布:2023-07-01 07:49
  • 更新:2023-07-05 19:00
  • 阅读:384

【报Bug】hbuilder 更新到最新版20230628-alpha后,renderjs不管用了

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Mac

PC开发环境操作系统版本号: macOS Monterey 12.6.1

HBuilderX类型: Alpha

HBuilderX版本号: 3.8.7

手机系统: Android

手机系统版本号: Android 10

手机厂商: vivo

手机机型: vivo s6

页面类型: vue

vue版本: vue2

打包方式: 云端

项目创建方式: HBuilderX

示例代码:
<view :change:prop="lzdom.onChange" :prop="readDom" :change:prop2="lzdom.adshow" :prop2="timer" ></view>  

<script module="lzdom" lang="renderjs">  
    export default {  
        data() {  
            return {  
            }  
        },  
        mounted() {},  
        methods: {  
            adshow(newValue, oldValue, ownerInstance, instance){  
                if(newValue!=0){  
                    document.getElementById('timediv').innerHTML=newValue+"S"  
                }else{  
                    document.getElementById('timediv').innerHTML=""  
                }  

            },  
            onChange(newValue, oldValue, ownerInstance, instance){  
                    let arr=document.getElementsByClassName('flip-text')  

                    console.log(newValue)  
                    if(arr.length==0){  
                        arr=document.getElementsByClassName('scroll-text');  
                    }  
                    for (var i = 0; i < arr.length; i++) {  
                        if(arr[i].innerHTML==newValue){  
                            arr[i].style.color="red"  
                        }else{  
                            arr[i].style.color=""  
                        }  
                    }  
            }  
        }  
    }  
</script>

操作步骤:

当我动态监听readDom时,有新变化后就执行onChange,之前未更新 hbuilder 的时候,一切都是正常的,但更新了 hbuilderx 之后,onchange 就不执行了。

预期结果:

希望renderjs可以正常

实际结果:

希望renderjs可以正常

bug描述:

hbuilder 更新到最新版20230628-alpha后,renderjs不管用了,而且报 Error: [JS Framework] Failed to receiveTasks, instance (5) is not available.

2023-07-01 07:49 负责人:无 分享
已邀请:
前端打工人

前端打工人 (作者)

之前版 本没事,升级了最新的版本后,很多问题出现了,真是坑啊

  • DCloud_UNI_LXH

    提供一个最小可复现的示例。提供的代码 prop 没有实现

    2023-07-03 11:31

  • 前端打工人 (作者)

    回复 DCloud_UNI_LXH: 我分别用老版本和新版本,云打包了调试基座。其中,老版本的APP显示正常,新版本打包的APP就不正常。


    测试步骤:

    1.进入搜索页,随便点一本小说,进入到书籍详情页,再点read进入到小说阅读页。

    2.点阅读页中间,会弹出操作菜单,点Listen按钮,当观看完广告后,APP会自动语音播放小说, 并且读到那一行,哪一行会字体变红。新版本打包的APP,字体不会变红,而且停止阅读按钮也出不来。


    两个调试基座安装包地址:链接:https://pan.baidu.com/s/1KbTyA9IIGtnzYX0cvLqfDQ?pwd=fayb

    提取码:fayb

    2023-07-04 00:06

DCloud_UNI_GSQ

DCloud_UNI_GSQ

之前没事的版本是多少?

  • 前端打工人 (作者)

    3.7.1.20230210-alpha

    2023-07-03 22:41

  • 前端打工人 (作者)

    2个版本我分别对比了下,最新版的报这个错Error: [JS Framework] Failed to receiveTasks, instance (1) is not available.

    2023-07-03 23:42

前端打工人

前端打工人 (作者)

我分别用老版本和新版本,云打包了调试基座。其中,老版本的APP显示正常,新版本打包的APP就不正常。

测试步骤:
1.进入搜索页,随便点一本小说,进入到书籍详情页,再点read进入到小说阅读页。
2.点阅读页中间,会弹出操作菜单,点Listen按钮,当观看完广告后,APP会自动语音播放小说, 并且读到那一行,哪一行会字体变红。新版本打包的APP,字体不会变红,而且停止阅读按钮也出不来。

  • DCloud_UNI_LXH

    希望可以提供一个最小的可复现的示例,比如新建一个默认模板,然后编写可能出现问题的示例,来复现错误。提供一个安装包地址不是很好排查,非常感谢您的反馈

    2023-07-04 11:16

  • 前端打工人 (作者)

    demo 运行视频地址:链接: https://pan.baidu.com/s/1DhfPS6sLrY6eycKqJaecgQ?pwd=yqtp 提取码: yqtp

    视频中的问题:

    点阅读页中间,会弹出操作菜单,点Listen按钮,APP会自动语音播放小说, 并且读到那一行,哪一行会字体变红。新版本打包的APP,字体不会变红,而且停止阅读按钮也出不来。

    2023-07-04 17:48

  • 前端打工人 (作者)

    回复 DCloud_UNI_LXH: 怎么样了大神们,有结果了吗?我们急 的火烧眉毛了

    2023-07-05 18:19

  • DCloud_UNI_LXH

    回复 前端打工人: 在排查,可以先使用上一版的打包

    2023-07-05 18:49

  • 前端打工人 (作者)

    回复 DCloud_UNI_LXH: 如果不用最新 版的打包的话,谷歌市场会被下架 的

    2023-07-05 20:42

DCloud_UNI_LXH

DCloud_UNI_LXH

刚刚使用稳定版的 hx 使用你提供的逻辑代码:

<template>  
    <view>  
        <view :change:prop="lzdom.onChange" :prop="readDom" :change:prop2="lzdom.adshow" :prop2="timer">  
            abcsdlfjsdfjdsjlfjsdlfsldfjlsdfjlsdjflsdjflksdjf  
        </view>  
        <button @click="change">change</button>  
    </view>  
</template>  

<script>  
    export default {  
        data() {  
            return {  
                readDom: {},  
                timer: 5,  
            }  
        },  
        methods: {  
            change() {  
                this.readDom = Date.now()  
                this.timer = Date.now()  
            }  
        }  
    }  
</script>  

<script module="lzdom" lang="renderjs">  
    export default {  
        methods: {  
            adshow(newValue, oldValue, ownerInstance, instance) {  
                console.log('adshow newValue: ', newValue);  
                console.log('adshow oldValue: ', oldValue);  
                console.log('adshow ownerInstance: ', ownerInstance);  
                console.log('adshow instance: ', instance);  
            },  
            onChange(newValue, oldValue, ownerInstance, instance) {  
                console.log('newValue: ', newValue);  
                console.log('oldValue: ', oldValue);  
                console.log('ownerInstance: ', ownerInstance);  
                console.log('instance: ', instance);  
            }  
        }  
    }  
</script>

运行后,点击 button ,两个 onChange 回调都正常执行

  • 前端打工人 (作者)

    您运行 下我提供的测试 demo,在最新版 20230628-alpha 中运行

    2023-07-05 20:47

  • DCloud_UNI_LXH

    回复 前端打工人: 简化后的逻辑了,说明 renderjs 的 onChange 事件触发没有问题。你把逻辑简化简化运行,看看问题到底是出在了哪里

    2023-07-06 11:00

要回复问题请先登录注册