uniapp代码如下:
<pay-button style="width: 300px;" :mode="2" :goods-id="coupon.productId" :goods-type="1" :marketing-ready="true"
@placeorder="placeorder_func"
@getgoodsinfo="getgoodsinfo_func"
@pay="pay_func"
@error="error_func" />
最终编译出来的如下:
<pay-button style="width:300px;" vue-id="b6f70dca-7" mode="{{2}}" goods-id="{{coupon.productId}}"
goods-type="{{1}}" marketing-ready="{{true}}"
data-event-opts="{{[['^placeorder',[['placeorder_func']]],['^getgoodsinfo',[['getgoodsinfo_func']]],['^pay',[['pay_func']]],['^error',[['error_func']]]]}}"
bind:placeorder="__e" bind:getgoodsinfo="__e" bind:pay="__e" bind:error="__e" bind:__l="__l">
</pay-button>
尘雨雾录 (作者)
自定义原生组件能绕过此问题,只是我作为开发者而言,主观上肯定不想维护两套体系的代码。
抖音小程序针对pay-button的这个bind:getgoodsinfo,可以看以下文档的说明,要求最后输出的是Promise对象。
https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/component/industry/trading-system/pay-button-sdk#2e204620
现在转换的e就是跑在抖音小程序下的结果,unpackage/dist/dev/mp-toutiao 这个目录内的小程序代码里,【bind:placeorder="e" bind:getgoodsinfo="e" bind:pay="e" bind:error="e"】,这个e我翻看了下导出后的common/vendor.js源码,是一个被统一管理的函数,也正因为是函数类型,所以在类型上,对不上。
我提出的建议是,要么再定义一个类似// #ifdef的规则,将不需要被纳入统一管理的属性函数给独立开。
要么强化下现有的// #ifdef逻辑,让被包裹的特定平台代码,不会被包裹进统一处理函数。
2024-01-22 09:42
祖传皮卡丘
大佬,抖音pay-button已被pay-button-sdk取代,还是老样子,属性丢失,和当时pay-button刚出来一样的,后来看你们更新文档说适配了。希望这次也快点吧,谢啦!
2024-01-23 09:05
音符cap
回复 尘雨雾录: 你的抖音pay-button的should be an object 问题解决了吗
2024-01-29 16:04
尘雨雾录 (作者)
回复 音符cap: 还没,需要用自定义原生组件方式。
2024-01-30 16:11
tody
回复 尘雨雾录: 自定义原生组件如何写,在抖音小程序开发工具里面去写吗?
2024-04-08 10:36
HRK_01
回复 tody: 是的
2024-04-09 20:20
HRK_01
回复 祖传皮卡丘: 最新版本不会复现了吧?我测试了没丢失属性
2024-04-09 20:34
祖传皮卡丘
回复 HRK_01: 看我帖子,官方说修复了
2024-10-12 16:24