vue——数据已更新但视图一直不渲染

vue

想实现的效果

请求接口获取待办数目和链接,当数目>0时,点击数目跳转链接。

出现的问题

页面上待办数目为0,但是打印弹窗发现待办数目为1,点击页面上显示的0仍可以跳转链接

原因

在请求待办时,我还请求了列表。但是列表返回的数据是null,页面上又判断了列表的长度。造成了浏览器报错,所以就没有再继续渲染

代码

<template>

<div>

<p @click="toLink(count,url)">待办数目:{{count}}</p>

<div v-if="list.length">

<p v-for="(item,index) in list" :key="index">

列表{{item}}

</p>

</div>

</div>

</template>

<script>

import API from '../api'

export default {

data() {

return {

count: 0,

url: '',

list: []

}

},

mounted() {

const that = this

that.getNum()

that.getList()

},

methods: {

getNum() {

const that = this

const timestamp = new Date().getTime()

that.$get(API.num + '?t=' + timestamp).then(res => {

if (res.code === 200) {
const _data = res.data // 最好改为 cons _data = res.data || {}

that.count = _data.count // 最好改为 that.count = _data.count || 0

that.url = _data.url // 最好改为 that.url = _data.url || ''

}

})

},

toLink(num, url) {

if (parseInt(num) > 0) {

window.open(url)

}

},

getList() {

const that = this

const timestamp = new Date().getTime()

that.$get(API.list + '?t=' + timestamp).then(res => {

if (res.code === 200) {

that.list = res.data // <== 出现问题的地方 应改为 that.list = res.data || [] 避免返回null或undefined的情况

}

})

}

}

}

</script>

以上是 vue——数据已更新但视图一直不渲染 的全部内容, 来源链接: utcz.com/z/376023.html

回到顶部