微信小程序新增了editor-portal组件,使用uni-app编译后传至key丢失
微信小程序新增了editor-portal组件,使用uni-app编译后传至key丢失
开发环境 | 版本号 | 项目创建方式 |
---|---|---|
Mac | 15.3.1 | HBuilderX |
产品分类:uniapp/小程序/微信
示例代码:
<block v-for="(item,idx) in customBlockList" :key="idx">
<editor-portal :key="item.blockId">
<view class="flex">
<view>{{item.blockId}}</view>
<view>{{item.text}}</view>
</view>
</editor-portal>
</block>
编译小程序后的代码
<block><editor-portal vue-id="{{'019b57bf-'+idx}}" bind:__l="__l" vue-slots="{{['default']}}"><view class="flex"><view>{{item.blockId}}</view><view>{{item.text}}</view></view></editor-portal></block>
操作步骤:
<block v-for="(item,idx) in customBlockList" :key="idx">
<editor-portal :key="item.blockId">
<view class="flex">
<view>{{item.blockId}}</view>
<view>{{item.text}}</view>
</view>
</editor-portal>
</block>
编译小程序后的代码
<block><editor-portal vue-id="{{'019b57bf-'+idx}}" bind:__l="__l" vue-slots="{{['default']}}"><view class="flex"><view>{{item.blockId}}</view><view>{{item.text}}</view></view></editor-portal></block>
预期结果:
<editor-portal key="{{item.blockId}}" vue-id="{{'019b57bf-'+idx}}" bind:__l="__l" vue-slots="{{['default']}}"><view class="flex"><view>{{item.blockId}}</view><view>{{item.text}}</view></view></editor-portal>
实际结果:
<editor-portal vue-id="{{'019b57bf-'+idx}}" bind:__l="__l" vue-slots="{{['default']}}"><view class="flex"><view>{{item.blockId}}</view><view>{{item.text}}</view></view></editor-portal>
更多关于微信小程序新增了editor-portal组件,使用uni-app编译后传至key丢失的实战教程也可以访问 https://www.itying.com/category-93-b0.html
7 回复
您好,麻烦提供一个可复现的demo
更多关于微信小程序新增了editor-portal组件,使用uni-app编译后传至key丢失的实战教程也可以访问 https://www.itying.com/category-93-b0.html
uniapp不支持block和 editor-portal 吗?编译都不成功
感谢反馈,我测试了一下,能复现你这个问题,已加分。你试试下面我发的内容能不能正常运行
去掉block,把v-for写在 editor-portal 上面
<editor id="editor">
<editor-portal v-for="(item,idx) in customBlockList" :key="item.blockId">
<view class="flex">
<view>{{item.blockId}}</view>
<view>{{item.text}}</view>
</view>
</editor-portal>
</editor>
实测vue也会编译失败
这是uni-app编译微信小程序时的一个已知问题。在编译过程中,editor-portal组件的key属性会被过滤掉,导致最终生成的代码中缺少key属性。
解决方案:
- 使用wx:key替代:key
<editor-portal wx:key="item.blockId">
- 或者改用动态id绑定
<editor-portal :id="'portal-'+item.blockId">