我不确定计算属性(在vue生命周期中)何时到来。让我们说我有一个方法,我在created()中运行:
created () {
getSomething()
}
在getSomething()里面,我获取数据并将我的数据属性填充为:
getSomething(){
axios.get(...) { this.info = response.data }
}
现在,在计算属性中,我这样做:
computed: {
doSomething () {
this.info.forEach(item => {})
}
}
但是,在我的计算中我得到forEach
是未定义的,好像this.info
不是数组或者没有被填充。
我做错了什么?是在created()之前调用的计算道具吗?
答案 0 :(得分:2)
尝试这样的事情
getSomething(){
return axios.get(...) { this.info = response.data }
}
然后你就可以使用像这样的创建方法中返回的promise ....
created () {
getSomething().then( () => {
doSomething()
}}
}
答案 1 :(得分:2)
您可以使用Vuex'州管理......
Vuex:
急件
操作
的突变
吸气剂
我的想法是,在您的网页加载中,将action
映射到调用axios
服务的商店,并在它返回后,commit
存储一个变异对商店的回应......
然后,您可以将状态映射到组件并检索数据。
这可能不是最快的答案,但如果您希望需要axios
请求中的响应数据,则可能值得将其置于某种状态管理中: - )