请帮忙看下下方的代码,我想使用onShow监听每次页面显示的时候远程获取一个列表,但为啥获取到值后无法再目标模板上渲染出来呢??
<template>
<view>
<view class="page-head">
<view class="page-head-title ">
<button class="mini-btn" type="primary" size="mini" @tap="addcar">添加新车辆</button>
</view>
</view>
<view class="page-body" id="carlist">
<view class="uni-card" v-for="(value,key) in carlistdata" :key="key">
<view class="uni-card-header">{{value.carname}}</view>
<view class="uni-card-content">
<view class="uni-card-content-inner">
{{value.license}}
</view>
</view>
</view>
</view>
</view>
</template>
<script>
import pageHead from '../../../components/page-head.vue'
export default {
// onLoad: function (option) { //option为object类型,会序列化上个页面传递的参数
// const uid = option.uid; //打印出上个页面传递的参数。
// },
data: {
title: '车辆列表',
carlistdata:[]
},
onShow: function (e) { //option为object类型,会序列化上个页面传递的参数
const uid = uni.getStorageSync('uid');
if (uid != "") {
this.getcarlist(uid);
} else {
uni.showModal({
title: '提示',
content: '您还未登录请先登录',
success: function (res) {
if (res.confirm) {
//console.log('用户点击确定');
uni.navigateTo({
url: '/pages/login/login'
});
} else if (res.cancel) {
//console.log('用户点击取消');
uni.switchTab({
url: '/pages/component/component'
});
}
}
});
}
},
components: {
pageHead
},
methods: {
addcar(e) {
uni.navigateTo({
url: '/pages/car/addcar/addcar'
});
},
getcarlist(e) {
uni.request({
url: 'https://119119.aumake.com/hdlapp/index.php?c=Appport&a=getmycar', //仅为示例,并非真实接口地址。
data: {
uid: e
},
header: {
'content-type': 'application/json' //自定义请求头信息
},
success: function (res) {
//console.log(res.data);
var rescode = res.data.code;
if (rescode > 0) {
var carlist = res.data.carlist;
console.log(JSON.stringify(carlist));
return this.carlistdata = JSON.stringify(carlist);
} else {
uni.showModal({
title: "注意",
content: "您尚未绑定车辆",
showCancel: false,
confirmText: "确定"
});
//uni.removeStorageSync('checkCode');
}
}
});
}
},
}
</script>
<style>
@import "../../../common/uni.css";
.page {
padding-top: 60px;
}
page {
background: #efeff4;
}
.image-view {
height: 480px;
overflow: hidden;
}
.image {
width: 100%;
}
</style>
1***@qq.com (作者)
可以简单先帮我看下有没有问题,carlistdata:[]初始值为空,然后监听显示页面后,需要重新赋值并把值在模板历遍显示出来,我这样写有没有问题呢?
2018-08-15 11:38
Trust
回复 1***@qq.com:赋值操作不正确,数组 = 字符串,给数组赋值一个字符串,它怎么遍历显示。
2018-08-15 11:43
1***@qq.com (作者)
回复 Trust:对吼,谢谢提醒,不过我直接用 res.data.carlist 赋值了,可是模板还是历遍不出来,(⊙o⊙)…
2018-08-15 12:54
1***@qq.com (作者)
data、onShow、methods什么的有先后顺序么
2018-08-15 13:28