我无法将回复推送到商店。根据我回归jsonapi规范后的文档,我应该能够直接推进它而不首先将其标准化。
将响应推送到商店的代码如下所示:
getCurrentUser() {
return get(this, 'store').queryRecord('user', {self: true})
.then((response) => {
const user = get(this, 'store').push(response);
set(this, 'account', user);
return user;
});
}
这会引发You must include an 'id' for undefined in an object passed to 'push'
。但是,如果我使用服务器的输出创建一个虚拟响应
getCurrentUser() {
return get(this, 'store').queryRecord('user', {self: true})
.then((response) => {
const testResponse =
{
"data": {
"type": "user",
"id": "578846b3e5438b26ebbce7d4",
"attributes": {
"identification": "admin",
"display-name": "Administrator"
},
"relationships": {
"servers": {
"data": []
},
"jobs": {
"data": []
}
}
}
};
const user = get(this, 'store').push(testResponse);
set(this, 'account', user);
return user;
});
}
一切都按预期工作。 testResponse
中的数据是邮递员的直接复制和粘贴,因此它与response
或response.data
中的数据不一致吗?
所以我尝试过将其标准化,但是会遇到各种各样的错误。
getCurrentUser() {
return get(this, 'store').queryRecord('user', {self: true})
.then((response) => {
const [data] = response.data;
const normalizedData = get(this, 'store').normalize('user', data);
const user = get(this, 'store').push(normalizedData);
set(this, 'account', user);
return user;
});
}
});
抛出Invalid attempt to destructure non-iterable instance TypeError
我尝试了上面几种不同的组合来获取各种错误。
任何指针都将不胜感激。