模板里面如果存在这样的语法,则会报错Bad value with message;然而||''和||[]则不会报错;如下所示;
<u-cell-item :arrow="false" title="报废年限">{{data.scrapYear||{}}}</u-cell-item>
解决方法:建议java后端加个拦截器统一处理下null
建议使用计算属性来访问全局变量;
Vue.prototype.$file = fileUrl
Converting circular structure to JSON --> starting at object with constructor 'Object' --- property 'order' closes the circle
原因:排查循环依赖的问题
,如下注释的代码即为循环依赖
this.detailData = der;//循环引用
// der = der;//原来的:循环引用
der =JSON.parse(JSON.der)) ;//修复后的,使用单层深拷贝解决循环引用问题
体积大
问题如下所示,方法toWorkOrderDetail接受不到order的入参
<viewclass="card"v-for="order inlist":key="order.id"@tap="toWorkOrderDetail(order)"></view>
解决如下
<view class="card" v-for="order in list" :key="order.id"@click="toWorkOrderDetail($event)" :data-row="order">
</view>
toWorkOrderDetail(e) {const {id} = e.wuni.navigateTo({url: `/******/detail?point_id=${pointId}`,});},
这个是通病,截至2023年uniapp都不支持该语法,切记封装组件的时候不要使用该语法
鸡肋的是我当时热更新没有问题,第二次运行的时候就提示不支持了,然后回去重头写组件
子组件
<template>
<!-- #ifdef MP-WEIXIN -->
<!-- 小程序没有作用域插槽 -->
<slot name="{{item.slot}}" ></slot>
<!-- #ifndef MP-WEIXIN -->
<slot :name="item.slot" :formItem="item"></slot>
<!-- #endif -->
</template>
父组件
切记小程序不要用template,否则渲染不出来
<!-- #ifdef MP-WEIXIN --><view v-slot:deviceNo><u-icon name="scan" size="38" @click="scan"></u-icon></view><!-- #endif --><!-- #ifndef MP-WEIXIN --><template v-slot:deviceNo><u-icon name="scan" size="38" @click="scan"></u-icon></template><!-- #endif -->
此问题只有小程序才会出现,h5不会出现
/*** 获取dom节点的宽高位置信息* 示例:uni.$yw.getDomClientRect('.yw-fixed-button')* @param {选择器字符串} select * @returns */
export function getDomClientRect(select) {return new Promise((resolve, reject) => {const instance = getCurrentInstance()ateSelectorQuery().in(instance).select(select).boundingClientRect(res => {resolve(res)}).exec()})
}
这是因为自定义组件渲染差异导致,如下为官网说明
可以配置virtualHost来配置
export default {options: {virtualHost: true,},
}
切记多端兼容的时候不要在computed执行数组的push等操作,否则数据会重复;
/**卡片数组 */const carList = computed(() => {const _tmp = [{ label: '品牌', key: 'modelName', },{ label: '所在仓库', key: 'stashStr' },]/**如果是不是采购的话就加上库存,同时设最大值 *//**注意事项:一定要加上type.value 的判断,不然微信小程序会先会执行2遍,这样就push进去了 *//**因为小程序computed会自动执行一次,然后onLoad里面给type赋值的时候又执行一次,这个是uniapp这个框架一直没有解决的编译BUG */if (type.value && (Number(type.value) != ENUMS.GOODS.APPLY_TYPE.BUY.VALUE)) {_tmp.push({ label: '库存', key: 'inventoryNumber' })maxKey.value = 'inventoryNumber'}return _tmp})
解决方法:
是因为在ios中会自动加上 -webkit-overflow-scrolling:touch,可在scrollView中的calss中取消掉它
.uni-scroll-view {-webkit-overflow-scrolling: auto;
}
本文发布于:2024-01-28 04:03:46,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/17063858534638.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |