今天使用卖座的api请求回来一个对象,其中的演员信息为列表,需要把演员的姓名提取出来合并为一个字符串,本来想使用模板语法{{data.actors.map(item=>item.name).join(' ')}}完成任务,但是发现一直报错,说map未定义。
以为是不能使用map,后来想改为函数式写法,到时候返回一个字符串就好了,但是却发现data.actors可以获取到演员列表,但是为它加索引写成data.actors[i]却又报错了。
最后才发现返回的数据是对象,但是我却把datalist习惯性的定义为了空列表,这样进行第一级处理的时候不会报错,但是进行第二级处理的时候就会报错。
总结:
- 返回的数据为对象,则datalist:null(会报错,给遍历节点的父节点加上v-if='datalist'可解决。原因:开始的数据列表为空,但是节点已经进行了渲染)
- 返回的数据为列表,则datalist:[]
- 返回的数据为字符串,则datalist:''
- 返回的数据为数字,则datalist:0
- 遵循先判断后循环的顺序进行节点处理,不可无数据渲染节点