首先,发起请返回的数据放到列表变量里,在界面上改变属性,发现界面不更新,于是用以下方法:
// 获取列表
getList(): void {
let request = http.createHttp();
request.request(
'https://mock.apifox.com/m1/4069686-3707332-default/shop/newsList',
{
method: http.RequestMethod.GET
},
(err, data) => {
if (!err) {
// console.log("111")
// console.log(data.result+'')
let re: Array<News> = JSON.parse(data.result + '')
//****关键代码
re.forEach(i => {
let o: News = new News(i.id, i.title, i.add_time, i.click, i.zhaiyao, i.img_url, i.isRead)
this.result.push(o)
})
}else{
console.log(err+'')
}
})
}
重新构建每一项的对象是关键,不然改变属性不会更新界面
再小记一下可选链操作符
Image(this.item?.img_url)
.width(100)
.height(80)
像界面出现异步等问题,出现报错read img_url of undefined 可以用?.符号修饰
可选链允许你读取位于连接对象链深处的属性的值,而不必明确验证链中的每个引用是否有效。如果尝试访问的属性不存在,表达式将短路并返回
undefined
,而不是抛出一个错误。