见bug描述
- 发布:2022-03-31 10:44
- 更新:2022-07-18 12:48
- 阅读:574
产品分类: uniapp/小程序/微信
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: -
HBuilderX类型: 正式
HBuilderX版本号: 3.3.13
第三方开发者工具版本号: 1.05.2201240
基础库版本号: 2.22.0
项目创建方式: HBuilderX
操作步骤:
预期结果:
v-if返回正确的结果
v-if返回正确的结果
实际结果:
一直返回假
一直返回假
bug描述:
编译前代码:
<template v-if="isApproval">
<view
v-if="['Assign', 'Disposal', 'Closure'].includes(currentStage) && checkPermissions('xxx')"
slot="sourceId:append"
class="append"
@tap="handleEditToApproval"
>
</view>
</template>
编译到小程序的wxml代码
<block wx:if="{{isApproval}}">
<block wx:if="{{$root.m0}}">
<view class="append data-v-9aab99b0" slot="sourceId:append" data-event-opts="{{[['tap',[['handleEditToApproval',['$event']]]]]}}" bindtap="__e"></view>
</block>
</block>
编译到小程序的js代码
var render = function() {
var _vm = this
var _h = _vm.$createElement
var _c = _vm._self._c || _h
var g0 = [-1].includes(_vm.approvalStatus)
var g1 = _vm.isApproval
? ["Assign", "Disposal", "Closure"].includes(_vm.currentStage)
: null
var m0 = _vm.isApproval ? _vm.$root.g1 && _vm.checkPermissions("xxx") : null
...
注意最后一行的_vm.$root.g1,这个时候的g1还没有赋值给$root,所以会返回undefined,导致这个v-if会一直为假
2 个回复
DCloud_UNI_GSQ
问题确认,已加分,后续修复
DCloud_UNI_Anne
HX 3.4.5+ 版本已修复此问题