如果我在组件的created方法里面,根据id去后台查询详情,可以正常显示,不报错,但是当父组件id值改变后,并不会再
如果我在组件的created方法里面,根据id去后台查询详情,可以正常显示,不报错,但是当父组件id值改变后,并不会再
又仔细看了下问题 - -
id
改变后应该是发起了请求,但是因为异步请求还没返回结果,所以导致了报错:
Error in render: "TypeError: Cannot read property 'content' of undefined"
建议的解决方案是:
(1)DOM里改为 {{ detail && detail.content}}
或者
(2)computed
属性里增加一个默认值,即:
gameDetail: {
get() {
let gameDetail = { content: '' }
const gameId = this.id
querySingleGameDetail(gameId).then(response => {
return response.data.data.singleGameDetail
})
return gameDetail
}
}
子组件可以这么写:
props:['id'],
data(){
return {
detail: {} ,
}
},
methods: {
get(id) {
...
}
},
watch: {
id: 'get'
}
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
2 回答4.7k 阅读✓ 已解决
4 回答4.3k 阅读✓ 已解决
我最后的解决办法是,在data里面再定义一个变量,然后detail的get返回的是这个标量,axios之后的值也是给这个变量赋值