原始代码片段

<template v-if="info">  
      <view class="card hero-base">  
        <view>  
          <image class="base-avatar" :src="info.base.avatar"></image>  
        </view>  
        <text class="base-name">{{info.base.name}}</text>  
        <view class="position">  
          <view v-for="(item, index) in info.position" :key="index" class="position-item" :class="{'position-item-selected': item.selected}"  
            @click="otherPos(item.id)">  
            {{positionMap[item.position]}} {{showPercent(item.position_pick_rate)}}  
          </view>  
        </view>  
      </view>

报错指向的代码片段

var render = function() {  
  var _vm = this  
  var _h = _vm.$createElement  
  var _c = _vm._self._c || _h  
  var l0 = _vm.__map(_vm.info.position, function(item, index) { // 这里报错 Cannot read property 'position' of null  
    var m0 = _vm.showPercent(item.position_pick_rate)  
    return {  
      $orig: _vm.__get_orig(item),  
      m0: m0  
    }  
  })

[HBuilder 或 HBuilderX。如果你用其他工具开发uni-app,也需要在此说明]
HBuilderX
[IDE版本号]
2.6.9.20200403

虽然这个报错不影响正常使用,但是见到报错还是挺不舒服的。


·回复

bug确认,目前小程序平台 v-if 条件为 false 的时候,其内部逻辑仍会执行,后续优化,可以先自行处理一下。
以当前示例为栗子,初始化info为null改为{}。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

Scroll Up