vue只能在父组件中访问后台获取所有内容,然后传给组件,子组件直接显示,不能只传id,然后子组件根据id获取内容吗?

问题解决了,解决方式是在data里面多声明一个属性,然后再computed的get的axios里面对这个变量进行赋值,get返回这个属性

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

阅读 3.1k
3 个回答

你这个是promise概念和js执行机制没理解,兄弟,

 querySingleGameDetail(gameId).then(response => {
    detail= response.data.data.detail//
  })

这个detail只有promise执行完成了才有值,但是return detail在promise执行之前就返回了detail=undefined

兄弟啊,你这个computed 里面只定义了get方法,没有执行啊
clipboard.png

你是模仿这个写法对把?

clipboard.png

还是建议用watch,不必太纠结。

回复 coder94:
get是会执行的,但是还是用watch吧,computed并不能很好的处理异步数据

— toBeTheLight · 4 小时前
回复 toBeTheLight:
好的,谢谢哈,那我就得到答案了就是 computed并不能处理异步数据

— coder94 · 4 小时前

回复 coder94:
你这个场景不适合promise,他的链式调用返回值一直是promise对象,你改成同步方法,获取你的detail就可以了,这里也不好使用async/await,也是返回的promise对象
promise只有在第一层的能与外面同步执行,其余的均是加入任务队列,异步进行执行,建议你了解一下js eventLoop机制

— 懒懒的技术宅 · 3 小时前

https://segmentfault.com/q/10...

推荐问题