<div class="hos-whole">
<div class="hos-list" v-for="(item,index) in hos_array" :key="index" :item="item" :index="index">
<div class="namebox">
<div class="hos-name">{{item.address}}</div>
<div class="disdetail">
<span class="distance">{{item.distance}}千米</span>
<span> · </span>
<span class="location">
{{item.address}}
</span>
</div>
</div>
<div class="hoscall">
<img src="../../../static/all/hosp_call_nor@2x.png" alt="">
</div>
</div>
</div>
<script>
import QQMapWX from './../../components/qqmap-wx-jssdk.js'
const qqmapsdk = new QQMapWX({
key:'IABBZ-K3B3G-W7BQE-IKL7U-WX3PK-HHBPD'
})
export default {
data() {
return {
}
},
computed: {
//搜索出附近医院
nearby_search(){
let hos_array=[]
//获取当前坐标
wx.getLocation({
type: 'gcj02', // 返回可以用于wx.openLocation的经纬度
success:(mes) => {
const the_latitude = mes.latitude
const the_longitude = mes.longitude
console.log(the_latitude,the_longitude)
}
})
var _this = this;
qqmapsdk.search({
auto_extend:0,
keyword: '医院', //搜索关键词
//设置周边搜索中心点
success : (res) => {
if(res && res.data){
var hos_array = [];
for(let i=0;i<=5;i++){
hos_array.push({
id:res.data[i].id,
title:res.data[i].title,
address:res.data[i].address,
distance:res.data[i]._distance,
})
//控制台可以看到这些数据
console.log(hos_array[i])
}
}
},
fail:(res)=>{
console.error(res)
},
complete: function (res){
console.log(res);
}
})
return hos_array
}
},
mounted() {
},
}
</script>
图片描述
console控制台有hos_array的数据产生 但是无法渲染到页面 为什么呢
这种需求不适用
computed
,非响应式属性的computed
数据是不会被缓存的,你这方法没有数据依赖,hos_array
并不会如你所需的被缓存起来。直接在
data
上挂个空的hos_array
数组,把方法写在methods
,最终结果赋值给hos_array
,在mounted
钩子里面触发吧