z***@126.com
z***@126.com
  • 发布:2024-03-12 19:27
  • 更新:2024-03-12 20:03
  • 阅读:80

V-IF 和v-else报错

分类:uni-app

在页面中,单独用v-if没问题,如下代码:
<scroll-view class="right-scroll" scroll-y>
<view v-for="(item,index) in category_goods " :key="index">
<view class="title">{{item.name}}</view>
<view v-if ="item['_id']['opendb-mall-goods'].length >0" >
<view v-for="(item2,name2) in item['_id']['opendb-mall-goods']" :key="index2">
<view class="goods-item">
<image :src="item2.goods_thumb" style="width: 180rpx;height: 180rpx; border-radius: 20rpx;"></image>
<view class="name-price">
<view >{{item2.name}}</view>
<view class="price">{{item2.market_price}}</view>
</view>
</view>
</view>
</view>
</view>
</scroll-view>

运行结果:
19:16:20.429 微信开发者工具已启动,在HBuilderX中修改文件并保存,会自动刷新微信模拟器

在添加了v-else后,页面编译报错:
<!--右侧商品明细栏 -->
<scroll-view class="right-scroll" scroll-y>
<view v-for="(item,index) in category_goods " :key="index">
<view class="title">{{item.name}}</view>
<view v-if ="item['_id']['opendb-mall-goods'].length >0" >
<view v-for="(item2,name2) in item['_id']['opendb-mall-goods']" :key="index2">
<view class="goods-item">
<image :src="item2.goods_thumb" style="width: 180rpx;height: 180rpx; border-radius: 20rpx;"></image>
<view class="name-price">
<view >{{item2.name}}</view>
<view class="price">{{item2.market_price}}</view>
</view>
</view>
</view>
<view v-else >
<image src="../../static/icon/eye.png" ></image>
<view >暂无该类商品</view>
</view>
</view>
</view>
</scroll-view>
运行后报错:
19:25:28.396 正在差量编译...
19:25:29.531 Module Error (from ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js):
19:25:29.531 (Emitted value instead of an instance of Error)
19:25:29.536 Errors compiling template:
19:25:29.536 v-else used on element <view> without corresponding v-if.
19:25:29.539 21 | </view>
19:25:29.539 22 | </view>
19:25:29.544 23 | <view v-else >
19:25:29.544 | ^^^^^^
19:25:29.548 24 | <image src="../../static/icon/eye.png" ></image>
19:25:29.549 25 | <view >暂无该类商品</view>
19:25:29.552 at H:\HBuilderProjects\工匠\pages\category\category.vue:0

求帮助解决!

2024-03-12 19:27 负责人:无 分享
已邀请:
DCloud_UNI_HRK

DCloud_UNI_HRK

很明显,你的写法就是错的哦。你把你其他冗余的代码删了就会发现,你的v-if 和 v-else 变成了父子关系,他们两是兄弟来的

<view v-if="item['_id']['opendb-mall-goods'].length >0">  
                    <view v-else>  
                        <image src="../../static/icon/eye.png"></image>  
                        <view>暂无该类商品</view>  
                    </view>  
                </view>
z***@126.com

z***@126.com (作者)

v-else 改为v-show,运行就没问题

要回复问题请先登录注册