[Vue warn]: Error in render: “TypeError: Cannot read properties of undefined (reading ‘kingKongList‘

报错但是程序能正常运行

H5 a.b.c问题报错

(underfined b 则是前面的a找不到)寻找问题:log前面的 a

原因:vue模板解析比发请求要快

<scroll-view class="navcroll" scroll-x="true"  >
			<view class="navItem" :class="{active:navIndex===-1}"@click="changIndex(-1)">推荐</view>
			<view class="navItem" :class="{active:navIndex===index}"@click="changIndex(index)" v-for="(item,index) in indexData.kingKongModule.kingKongList" :key="item.L1Id">{{item.text}}</view> 
			//v-for渲染时数据没请求到(异步请求)
		</scroll-view>
//获取首页数据
			async getIndexData() {
				// const res = await request('/getIndexData'); //小程序
				const res = await request('/api/getIndexData'); //H5
				console.log('==========', res);
				this.indexData = res.indexData;
			},

解决办法:v-if判断index是否有数据,请求到数据以后在渲染

<scroll-view class="navcroll" scroll-x="true" v-if="indexData.kingKongModule"> //v-if判断节点是否有数据
			<view class="navItem" :class="{active:navIndex===-1}"@click="changIndex(-1)">推荐</view>
			<view class="navItem" :class="{active:navIndex===index}"@click="changIndex(index)" v-for="(item,index) in indexData.kingKongModule.kingKongList" :key="item.L1Id">{{item.text}}</view> 
		</scroll-view>

面试题:

v-if:添加删除 DOM

v-show:显示、隐藏 DOM display:none

面试题:v-if 和v-for可以放在同一个标签下吗?为什么

答案 :不能。v-for优先级高,需要同时使用的话,v-if放到父元素上

为什么小程序不报错但是H5报错

答案:因为小程序编译之后的代码,放到开发工具里加载,所以不会出现上面的情况

而 js 是解释型语言,一条一条解释导致渲染快过请求

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值