Falcor - 'get' 不再将引用作为叶值发出
Falcor - 'get' no longer emits references as leaf values
我最近从 Falcor 0.x 升级到 1.1.0(2.x 将是下一步)
根据 Falcor migration documentation,当调用 model.get
时,引用不再作为 json 发出。
但是我想知道在 model.get
.
中管理引用的最佳实践是什么
这是一个例子。
具有以下json图表:
{
jsonGraph: {
comment: {
123: {
owner: { $type: "ref", value: ["user", "abc"] },
message: "Foo"
}
},
user: {
abc: {
name: "John Doe"
initials: "JD"
}
}
}
}
调用 model.get
将导致:
const json = await model.get(["comment", "123", ["owner", "message"]);
{
owner: undefined, // 0.x was returning `["user", "abc"]`
message: "John Doe"
}
但是可以只获取所有者:
const json = await model.get(["comment", "123", "owner", ["name", "initials"]);
{
name: "John Doe",
initials: "JD"
}
在 model.get
中处理引用的建议是什么?
我应该手动获取所有者(如上一个示例?)还是应该使用 ownerId
而不是 comment
模型中的 owner
引用?
model.get
可以取任意数量的 pathSets
(docs)。因此,将您的第一个 pathSet
分成两个并作为单独的参数传递:
await model.get(
["comment", "123", "message"],
["comment", "123", "owner", ["name", "initials"]]
);
哪个应该return
{
message: "John Doe"
owner: {
name: "John Doe",
initials: "JD"
}
}
潜在的约束是单个路径集只能包含相同深度的多个路径。所以不同深度的多条路径只能用多个pathSet来表示。
我最近从 Falcor 0.x 升级到 1.1.0(2.x 将是下一步)
根据 Falcor migration documentation,当调用 model.get
时,引用不再作为 json 发出。
但是我想知道在 model.get
.
这是一个例子。
具有以下json图表:
{
jsonGraph: {
comment: {
123: {
owner: { $type: "ref", value: ["user", "abc"] },
message: "Foo"
}
},
user: {
abc: {
name: "John Doe"
initials: "JD"
}
}
}
}
调用 model.get
将导致:
const json = await model.get(["comment", "123", ["owner", "message"]);
{
owner: undefined, // 0.x was returning `["user", "abc"]`
message: "John Doe"
}
但是可以只获取所有者:
const json = await model.get(["comment", "123", "owner", ["name", "initials"]);
{
name: "John Doe",
initials: "JD"
}
在 model.get
中处理引用的建议是什么?
我应该手动获取所有者(如上一个示例?)还是应该使用 ownerId
而不是 comment
模型中的 owner
引用?
model.get
可以取任意数量的 pathSets
(docs)。因此,将您的第一个 pathSet
分成两个并作为单独的参数传递:
await model.get(
["comment", "123", "message"],
["comment", "123", "owner", ["name", "initials"]]
);
哪个应该return
{
message: "John Doe"
owner: {
name: "John Doe",
initials: "JD"
}
}
潜在的约束是单个路径集只能包含相同深度的多个路径。所以不同深度的多条路径只能用多个pathSet来表示。