当前位置:网站首页>uni-app中使用computed解决了tab切换中data()值显示的异常
uni-app中使用computed解决了tab切换中data()值显示的异常
2022-07-02 10:30:00 【Web前端打字员】
tab切换以后数据展示异常
后端返回的数据结构=>
{
“status”:1,
“msg”:“查询成功”,
“data”:{
“no_start_work_count”:1,
“working_count”:0,
“in_working_count”:0,
“work_end_count”:0,
“work_over_dd_count”:0,
“work_over_count”:0,
“count”:1,
“pageCount”:1,
“nowPage”:“1”,
“list”:[
{
“id”:137,
“work_sn”:“gd16562977xxx8”,
“user_id”:6718xx,
“type”:2,
“address”:“广东省 广州市 XXX XXX”,
“phone_mob”:“13488888888”,
“consignee”:“wwater”,
“image_url”:“”,
“remark”:“期待上门时间:2022-06-27 10:41-10:38;<br/>工单需求:这是测试时间是否可以查阅”,
“add_time”:“2022-06-27 10:42”,
“visit_time”:“2022-06-27 10:41”,
“order_id”:194956xxx,
“order_sn”:“20220627104xxxxxx”,
“recs_id”:“4443xxx”,
“status”:2,
“worker_profit_money”:“0.00”,
“items_that”:“挂壁式”,
“punch”:1,
“fault_num”:1,
“fault_type”:2,
“fault_money”:“10.00”,
“orderGoods”:{
“goodsList”:[
{
“goods_name”:“洗衣机安装”,
“goods_image”:“https://oss.aliyuncs.com/tpsite2/zuolinyouli.xyd.qushiyun.com/8af4ccf9ccb7554c0af684de201faf66.png”,
“price”:“0.01”,
“quantity”:“1.00”
}
],
“orderPrice”:“0.01”
},
“lng”:null,
“lat”:null,
“distance”:0,
“status_text”:“已派工”,
“user_avatar”:“https://thirdwx.qlogo.cn/mmopen/vi_32/DYAIOgq83eqZ4vmXhgRLao1iamtR114XPyADIF9UV9nEibndUudcPiaFVQlibibn6rd4HJ06zH3THmvEC6I3dNSZvdA/132”
}
]
}
}
BUG视图和分析
通过axios获取的数据以后进行渲染绑定,我这边
代码=>
通过map遍历循环返回出去这个商品名称和数量,但是会出现上述的情况在切换过程中会出现goodsQuantity``goodsName 变为object对象。
标签显示的内容
<view class="left text_overflow padding20">{
{goodsName}}x{
{goodsQuantity}}</view>
data() {
return {
goodsName:"",
goodsQuantity:0,
orderList:[],
}
},
methods:{
getDetail() {
let that = this
let url = 地址接口
let datakey = []
// ......datakey需要传递的参数
// datakey['limit'] = 10
Util.request(url, datakey, "GET", res => {
// .......
let orderList = res.data.list
this.orderList = [...this.orderList, ...orderList];
this.status = 'loadmore'
// 这边进行赋值操作
that.goodsName = orderList.orderGoods.goodsList.map(item =>{
return item.goods_name
})
that.goodsQuantity = orderList.orderGoods.goodsList.map(item =>{
return item.quantity
})
if (orderList.length < 10) {
this.switch = true
this.status = 'nomore'
}
}, err => {
console.error(err)
})
},
}
解决方法
通过计算属性computed 来解决这个问题:
区别data和computed
data 和 computed 最核心的区别在于 data 中的属性并不会随赋值变量的改动而改动,而computed 会。(赋值变量类似:num: aaa.bbb,直接赋值是 num: 123);也就是说如果我们的值是可变的,那么就是用这个computed进行使用,computed可以更精细的控制属性读写,但它需要借助一个临时变量(temp_name)才能实现。
<view class="left text_overflow padding20">{
{shopGoodsName }}x{
{shopGoodsQuantity}}</view>
data() {
return {
goodsName:"",
goodsQuantity:0,
orderList:[],
}
},
computed:{
shopGoodsName() {
return this.goodsName = this.orderList.map(val =>{
return val.orderGoods.goodsList.map(item =>{
return item.goods_name
})
})
},
shopGoodsQuantity() {
return this.goodsQuantity = this.orderList.map(val =>{
return val.orderGoods.goodsList.map(item =>{
return parseInt(item.quantity)
})
})
}
},
methods:{
getDetail() {
let that = this
let url = 地址接口
let datakey = []
// ......datakey需要传递的参数
// datakey['limit'] = 10
Util.request(url, datakey, "GET", res => {
// .......
let orderList = res.data.list
this.orderList = [...this.orderList, ...orderList];
this.status = 'loadmore'
if (orderList.length < 10) {
this.switch = true
this.status = 'nomore'
}
}, err => {
console.error(err)
})
},
}
最终解决了这个问题

边栏推荐
- Simple introduction to ENSP
- Skillfully use SSH to get through the Internet restrictions
- Just 1000 fans, record it
- 自定义事件,全局事件总线,消息订阅与发布,$nextTick
- [USACO05JAN]Watchcow S(欧拉回路)
- MySQL 45 lecture - learning the actual battle of MySQL in Geek time 45 Lecture Notes - 05 | easy to understand index (Part 2)
- 你的 Sleep 服务会梦到服务网格外的 bookinfo 吗
- How to explain binary search to my sister? This is really difficult, fan!
- 大家信夫一站式信用平台让信用场景“用起来
- Everyone believes that the one-stop credit platform makes the credit scenario "useful"
猜你喜欢

自定义事件,全局事件总线,消息订阅与发布,$nextTick

题解《子数整数》、《欢乐地跳》、《开灯》

Mysql5.7 installation super easy tutorial

Pointer from entry to advanced (1)
[document tree, setting] font becomes smaller

使用BLoC 构建 Flutter的页面实例

Common options of tcpdump command: Three

你的 Sleep 服务会梦到服务网格外的 bookinfo 吗

leetcode621. task scheduler

2022 Heilongjiang provincial examination on the writing skills of Application Essays
随机推荐
默认插槽,具名插槽,作用域插槽
[unity] using GB2312, the solution to abnormal program after packaging
[USACO05JAN]Watchcow S(欧拉回路)
MySQL45讲——学习极客时间MySQL实战45讲笔记—— 04 | 深入浅出索引(上)
混沌工程平台 ChaosBlade-Box 新版重磅发布
Origin绘制热重TG和微分热重DTG曲线
BeanUtils -- shallow copy -- example / principle
2022 Heilongjiang provincial examination on the writing skills of Application Essays
MySQL 45 lecture - learning the actual battle of MySQL in Geek time 45 Lecture Notes - 05 | easy to understand index (Part 2)
Quantum three body problem: Landau fall
What are eNB, EPC and PGW?
693. 行程排序(map + 拓扑)
[Blue Bridge Cup] children's worship circle
Pattern matching and regular expressions in PostgreSQL - Das
Runhe hi3516 development board openharmony small system and standard system burning
不会看器件手册的工程师不是个好厨子
Achievements in science and Technology (27)
c# 水晶报表打印
A better database client management tool than Navicat
千元投影小明Q1 Pro和极米NEW Play谁更好?和哈趣K1比哪款配置更高?