zZZ1Ma
zZZ1Ma
  • 发布:2022-10-09 17:27
  • 更新:2022-10-09 17:27
  • 阅读:189

【报Bug】Vue3小程序,SJS内callMethod无法正常调用逻辑层方法,WXS内callMethod可正常调用

分类:uni-app

产品分类: uniapp/小程序/阿里

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: win11 21H2

HBuilderX类型: 正式

HBuilderX版本号: 3.6.4

第三方开发者工具版本号: 3.1.3

基础库版本号: 2.8.0

项目创建方式: HBuilderX

示例代码:
<!-- index.vue -->  
<button type="primary"  
          data-text="逻辑层方法调用成功"  
          @click="aly.handleEvent">{{aly.text}}</button>
// aly.sjs  
export default {  
  text: 'SJS_Button-text',  
  handleEvent: function(event, ownerComponent) {  
    // 更改背景颜色  
    event.instance.setStyle({ 'background-color': '#e64340' });  
    // 调用逻辑层方法  
    event.instance.callMethod('printLog', event)  
  }  
}
// index.vue  
<script module="aly" lang="sjs" src="./aly.sjs"></script>  
  
<script setup>  
  import { shallowReactive } from 'vue'  
  import { onLoad } from '@dcloudio/uni-app'  
  
  const data = shallowReactive({  
    text: 'Button'  
  })  
  
  onLoad(() => console.log('pageLoad'))  
  
  defineExpose({  
    printLog: args => {  
      console.log(args)  
    }  
  })  
</script>

操作步骤:

新建vue3项目,复制以上代码(aly.sjs为单独文件,非page.vue内联代码),运行至支付宝小程序开发者工具

预期结果:
  1. 页面显示蓝色按钮,文本为“SJS_Button-text”;
  2. 点击按钮,颜色将变红,同时控制台输出日志;
  3. 更改onLoad(() => console.log('pageLoad'))为 onLoad(() => console.log('123')),保存
  4. 按钮及文本渲染正常,控制台输出日志为“123”,可重复执行第二步;

实际结果:

第三步执行完毕,控制台输出日志为“123”,按钮渲染但无文本,点击不变色,控制台无日志输出;
BUG:须将

<script module="aly" lang="sjs" src="./aly.sjs"></script>

注释、保存再取消注释、保存,才可达到预期效果;
每次更改其它代码之后都需要进行“注释、保存再打开、保存”这一操作,极其繁琐,不利于调试。

bug描述:

uniApp开发支付宝小程序,复杂交互须使用SJS提升touchMove流畅度

按文档引入SJS后,任何代码更改后保存,都将导致SJS内容丢失

2022-10-09 17:27 负责人:无 分享
已邀请:

要回复问题请先登录注册