如何将从firebase检索到的单个json记录转换为数组
我试图从firebase中提取一条记录用于vuejs,但我不知道如何将其转换为数组,如果这是我应该做的 我的变异如何将从firebase检索到的单个json记录转换为数组,firebase,vuejs2,axios,Firebase,Vuejs2,Axios,我试图从firebase中提取一条记录用于vuejs,但我不知道如何将其转换为数组,如果这是我应该做的 我的变异 GET_CASE(state, caseId) { state.caseId = caseId; }, 我的行动 getCase ({ commit, context }, data) { return axios.get('http' + data + '.json') .then(res => { const convertcase = []
GET_CASE(state, caseId) {
state.caseId = caseId;
},
我的行动
getCase ({ commit, context }, data) {
return axios.get('http' + data + '.json')
.then(res => {
const convertcase = []
convertcase.push({ data: res.data })
//result below of what is returned from the res.data
console.log(convertcase)
// commit('GET_CASE', convertcase)
})
.catch(e => context.error(e));
},
我现在将以下内容返回到{{myCase}
[ { "data": { case_name: "Broken laptop", case_status: "live", case_summary: "This is some summary content", contact: "", createdBy: "Paul", createdDate: "2018-06-21T15:20:22.932Z", assessor: "Gould", updates: "" } } ]
当我只想展示坏掉的笔记本电脑时
谢谢把这个放在你的
里面/后面。然后
Object.keys(data).forEach(function(k, i) {
console.log(k, i);
});
通过Axios的响应,您可以通过以下方式获取数据:
res.data.case_name
res.data.case_number
....
只需构建包含这些属性的JavaScript对象,并将该对象传递给您的用户。我认为这比使用数组要好
const obj = {};
Object.assign(obj, res.data);
commit('GET_CASE', obj)
在你的变异过程中,你要做如下的事情:
mutations: {
GET_CASE (state, payload) {
for (var k in payload) {
if (payload.hasOwnProperty(k)) {
state[k] = payload[k]
}
}
}
}
state: {
case: {},
...
},
getters: {
getCase: state => {
return state.case
},
....
},
mutations: {
GET_CASE (state, payload) {
state.case = payload
}
}
const case = this.$store.getters.getCase
..... = case.case_name
或者,您可以按如下方式对您的商店进行编码:
mutations: {
GET_CASE (state, payload) {
for (var k in payload) {
if (payload.hasOwnProperty(k)) {
state[k] = payload[k]
}
}
}
}
state: {
case: {},
...
},
getters: {
getCase: state => {
return state.case
},
....
},
mutations: {
GET_CASE (state, payload) {
state.case = payload
}
}
const case = this.$store.getters.getCase
..... = case.case_name
将大小写
字段的值调用为组件,如下所示:
mutations: {
GET_CASE (state, payload) {
for (var k in payload) {
if (payload.hasOwnProperty(k)) {
state[k] = payload[k]
}
}
}
}
state: {
case: {},
...
},
getters: {
getCase: state => {
return state.case
},
....
},
mutations: {
GET_CASE (state, payload) {
state.case = payload
}
}
const case = this.$store.getters.getCase
..... = case.case_name
示例
let-obj={a:1,b:'a');let-arr=Object.values(obj)//arr=[1,'a']
async getCase ({ commit, context }, url) {
try {
let { data } = await axios.get(`http${url}.json`)
commit('myMutation', Object.values(data))
} catch (error) {
context.error(error)
}
}
但当我再次阅读你的文章时,我认为你不需要对象的数组。你需要一个对象的数组。所以,也许这就是你想要的:
async getCase ({ commit, context }, url) {
try {
let { data } = await axios.get(`http${url}.json`)
commit('myMutation', [data])
} catch (error) {
context.error(error)
}
}
你能在你的帖子中添加你收到的JSON的内容,以及你的GET_案例变异的代码吗?谢谢你的关注,请参阅更新我目前的位置我已经再次更新了答案。你能确认它有效吗?我不能100%确定这是否适用于Vuex state。嗨,再次感谢,第一个示例显示了正确的对象,如果我记录有效负载,但我现在如何访问组件中的各个字段…感谢删除,相对于第二个字段,如果我通过如下突变返回,我将如何从组件访问my突变(state,theCase){state.theCase=theCase;},我假设了case.case\u的名称,但这不起作用。我的状态是case:[]好的,稍后我将编写完整的示例。包括动作、突变、getter和组件。哇,这太棒了,谢谢,你可以肯定地告诉我,我是新手,非常喜欢学习如何通过Axios与firebase交互。非常感谢你的帮助。你能为我修改这个示例吗?谢谢