vue子组件,如何根据父组件传进来的id,去查询详情,并在子组件中显示?

如果我在组件的created方法里面,根据id去后台查询详情,可以正常显示,不报错,但是当父组件id值改变后,并不会再

阅读 4k
3 个回答

我最后的解决办法是,在data里面再定义一个变量,然后detail的get返回的是这个标量,axios之后的值也是给这个变量赋值

又仔细看了下问题 - -

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'
}

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题