uni-app 支付宝小程序组件 join-group-chat 条件编译后 template-id 参数丢失

uni-app 支付宝小程序组件 join-group-chat 条件编译后 template-id 参数丢失

开发环境 版本号 项目创建方式
PC Mac CLI
操作系统 12.7.1
工具 3.8.11
2.9.6
CLI 3.0.0-alpha-401

示例代码:

<!-- #ifdef MP-ALIPAY  -->    
<join-group-chat :template-id="templateId" />  
<!--  #endif -->  

操作步骤:

<!-- #ifdef MP-ALIPAY  -->    
<join-group-chat :template-id="templateId" />  
<!--  #endif -->  

预期结果:

支付宝组件 join-group-chat template-id 不被编译 保留字符串形式

实际结果:

组件不显示

bug描述:

支付宝小程序使用 join-group-chat 组件, 真机调试后发现组件没有显示 基础库是支持该组件使用的
检查编译后的文件,发现 template-id 消失了


更多关于uni-app 支付宝小程序组件 join-group-chat 条件编译后 template-id 参数丢失的实战教程也可以访问 https://www.itying.com/category-93-b0.html

4 回复

感谢反馈,我已复现,bug 已确认,并给你加分。
问题定位 alipay 新增了一部分开放组件,需要同步调整白名单。
下个版本会生效。
临时解决方案 在下个版本发布之前,你可以按照下面的方式使用最新编译产物
使用 HBuilderX 找到 IDE 安装目录,windows 在资源管理器找到,mac 在访达-应用程序-HBuiderX 中右键选择 展示包内容
Contents/HBuilderX/plugins/uniapp-cli-vite/node_modules/@dcloudio/uni-mp-alipay/dist/uni.compiler.js
替换使用下面的文件
使用 cli 使用 CLI 脚手架打开
项目地址/node_modules/@dcloudio/uni-mp-alipay/dist/uni.compiler.js
替换使用下面的文件
文件修改如下
如果仍有问题,请留言告诉我。

更多关于uni-app 支付宝小程序组件 join-group-chat 条件编译后 template-id 参数丢失的实战教程也可以访问 https://www.itying.com/category-93-b0.html


HBuilderX 4.14.2024042905-alpha 已修复。

join-group-chat,可以正常用了吗,我的还不能用,大佬可以帮忙看看吗

在 uni-app 中使用条件编译来处理不同平台的代码时,可能会遇到某些参数在特定平台上丢失的问题。对于你提到的 join-group-chat 组件的 template-id 参数在支付宝小程序中丢失的情况,可能是由于条件编译的写法或参数传递方式不当导致的。

解决方法

  1. 检查条件编译语法: 确保条件编译的语法正确,并且 template-id 参数在支付宝小程序的条件下被正确传递。

    <template>
      <!-- 通用代码 -->
      <view>
        <!-- 支付宝小程序特定代码 -->
        #ifdef MP-ALIPAY
        <join-group-chat template-id="your-template-id" />
        #endif
      </view>
    </template>
    
  2. 确保参数正确传递: 确保 template-id 参数在支付宝小程序的条件下被正确传递,并且参数名称与组件要求的名称一致。

  3. 检查组件文档: 确保 template-idjoin-group-chat 组件在支付宝小程序中支持的属性。不同平台可能对组件的属性支持有所不同。

  4. 调试输出: 在支付宝小程序环境下,通过 console.log 或其他调试手段,检查 template-id 是否被正确传递到组件中。

    <script>
    export default {
      mounted() {
        #ifdef MP-ALIPAY
        console.log('template-id:', 'your-template-id');
        #endif
      }
    }
    </script>
    
  5. 使用动态绑定: 如果 template-id 是动态的,可以使用 :template-id="templateId" 的方式进行动态绑定,确保参数能够正确传递。

    <template>
      <view>
        #ifdef MP-ALIPAY
        <join-group-chat :template-id="templateId" />
        #endif
      </view>
    </template>
    
    <script>
    export default {
      data() {
        return {
          templateId: 'your-template-id'
        };
      }
    }
    </script>
回到顶部