为了账号安全,请及时绑定邮箱和手机立即绑定

VUE绑定数组的某个值初始化报错 怎么解?~

VUE绑定数组的某个值初始化报错 怎么解?~

翻阅古今 2019-02-05 18:09:13
我的数据 是这样的:{    banner:[      {"Bpic":"b1.jpg","spic":"s1.jpg"},      {"Bpic":"b2.jpg","spic":"s2.jpg"},      {"Bpic":"b3.jpg","spic":"s3.jpg"}    ] }template:<img :src="pageData.banner[p_index].Bpic" />也就是有个图片组件呢 绑定的是数据里面的 第p_index项的Bpic数据在data里面呢 定义了p_index (显示第几个图片索引) 和 pageData={}这个对象。现在问题是页面载入的时候 pageData是空的 所以html上面<img :src="pageData.banner[p_index].Bpic" />这句代码的绑定会代码报错,提示pageData.banner 是空的。而实际上 在mounted里面会调用一个异步ajax请求,然后得到的数据 pageData=res.data赋值。这个时候 绑定数据再刷新到页面。虽然实际页面是显示正常,但是初始化有个报错 还是很不爽。目前 我只能在data 定义pageData的时候 指定一些页面绑定用到的数据 如:data () {      return {          pageData: {"banner":[              {"bpic":"","spic":""}          ]},         p_index :0     }虽然问题是解决了但是总感觉有些蠢,不知道有没有其他更优雅一些的做法?
查看完整描述

1 回答

?
ITMISS

TA贡献1871条经验 获得超8个赞

从标签下手吧。

方案1:

<img :src="pageData.banner ? pageData.banner[p_index].Bpic : ''" />

方案二:

<img :src="pageData.banner[0] ? pageData.banner[p_index].Bpic : ''" />

export default {  data(){    return {        pageData: {           banner: []
        }
    }
  }
}


查看完整回答
反对 回复 2019-02-05
  • 1 回答
  • 0 关注
  • 415 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信