项目场景:
uniapp H5项目
问题描述
组件部分在浏览器中运行无错,在真机运行时自定义状态栏整个显示undefined
<view>
<u-navbar
back-text="orgName"
:back-icon-name="isShowOrgList ? 'arrow-up' : 'arrow-down'"
back-icon-color="#fff"
back-icon-size="30"
:back-text-style="{
color: '#fff',
fontWeight: '700',
fontSize: 32+'rpx'
}"
:custom-back="() => isShowOrgList = !isShowOrgList"
:background= "{ background: 'linear-gradient(180deg, #7DB2FD 0%, #4395FF 100%)' }"
>
<view slot="right" class="u-p-r-30 u-relative" @click="$to.navigateTo('/pages/index/tips/tips')">
<image src="/static/xiaoxi.svg" style="width: 42rpx;" mode="widthFix"></image>
<u-badge type="error" count="0" :offset="[-10, 10]" size="mini"></u-badge>
</view>
</u-navbar>
<xInputSelect
class="org_select_wrap"
@setName="setName"
:isShowContent.sync="isShowOrgList"
:valueList="orgList"
:style="{width: 12 + 'em'}"
></xInputSelect>
原因分析:
在浏览器预览时没有任何报错,并且翻出从前应用该组件的项目运行无任何问题,所以原因不在该组件上,结合在模拟器中运行时,报错TypeError: Invalid attempt to destructure non-iterable instance. 14:34:49.596 In order to be iterable, non-array objects must have a [Symbol.iterator]() method. at view.umd.min.js:1 14:34:49.618 cid unmatched at view.umd.min.js:1
大概就是TypeError:对不可重写实例进行分解的尝试无效。应该是有什么属性未定义。
解决方案:
找遍页面没有未定义属性,只能逐段删除代码查看是哪里出了问题,最后锁定这里
<view class="content">
<view class="project-bg">
<template>
<!-- v-if="userInfoMessage.user" -->
<view class="person-pro" v-if="userInfoMessage.user">
<image class="user-pic" :src="userInfoMessage.user.nurse_head != null ? staticfileUrl + userInfoMessage.user.nurse_head : '/static/tabbar/head.png'" mode="scaleToFill"></image>
没错,就是那个v-if
,害我找了好久,当时改代码加上接口一会断掉一会连接的,为了方便自己写了假数据,后来着急把v-if放错地方了,应该放在template中,但是正常来讲放在view里也不应该报错,具体原因还没找到,以后找到了再补充