javascript - 无法访问组件中的 json 数据
问题描述
我正在尝试从 XMLHttpRequest 获取 json 数据,它运行良好,所以我在控制台中看到了数据。但是应该显示这些数据的组件没有显示任何...有什么问题吗?也许在mounted()中调用函数是错误的?我也在 created() 中调用它,但没有任何改变......有什么想法吗?
在脚本中
data(){
return{
json: {}
}
}
mounted(){
var gsRef = firebase.storage().refFromURL('XXXXXXXXX')
gsRef.child(firebase.auth().currentUser.uid+'.json').getDownloadURL().then(function(url){
var xhr = new XMLHttpRequest()
xhr.responseType = 'json'
xhr.onload = function() {
this.json = xhr.response
console.log(this.json.user) //works shows the data!
}
xhr.open('GET',url)
xhr.send()
})
}
在模板中
<h1>{{json.user}}</h1> //doenst work. Cannot access data
解决方案
“this”可能指的是错误的上下文(即不是 vue 实例)。尝试this
在您的 firebase 调用之前保存对正确的引用,例如const self = this
,然后用于self.json
设置数据。
mounted(){
var self = this
var gsRef = firebase.storage().refFromURL('XXXXXXXXX')
gsRef.child(firebase.auth().currentUser.uid+'.json').getDownloadURL().then(function(url){
var xhr = new XMLHttpRequest()
xhr.responseType = 'json'
xhr.onload = function() {
self.json = xhr.response
console.log(self.json.user) //works shows the data!
}
xhr.open('GET',url)
xhr.send()
})
}
推荐阅读
- r - 上下几个grepl
- javascript - 从 localStorage 中检索令牌
- c - 使用互斥锁和 pthread 遍历目录
- github - GitHub Actions cronjob 触发器似乎在一小时后触发
- elasticsearch - 当至少一个对象不包含必要字段时,按对象数组选择文档 Elasticsearch
- api - API调用请求有什么问题
- microsoft-graph-api - /users/{userId}/onlineMeetings - 使用应用程序令牌创建会议
- html - 从 HTML 导出到 Excel
- python - 使用@pytest.fixtures(函数)作为参数编写测试?
- sql - 使用不同的数据类型更新 Teradata 中的值 错误 3754