AppSync GraphQL 模拟解析器映射未生成唯一项
AppSync GraphQL Mocking Resolver Map Not Generating Unique Items
我的模拟没有为每个项目生成唯一数据,而是每个项目都具有相同的字段值。
选项 1:(理想方法,结果不正确)
AppSync 架构包含 [Model]
的 items
字段,如果我单独放置 Model
解析器,items
中的所有 Model
列表具有相同的值。
const mocks = {
ModelModelConnection: () => ({
items: () => new MockList(5),
}),
Model: () => ({
id: casual.uuid,
name: casual.title,
}),
};
结果...
选项 2:(替代方法,正确结果)
const mocks = {
ModelModelConnection: () => ({
items: () => new MockList(5, () => ({
id: casual.uuid,
name: casual.title,
})),
}),
};
我想选择选项 1,但我似乎无法获得要模拟的独特物品。一直在挠我的头。提前致谢!
如the docs所示,如果您想在每次触发字段的解析器时生成不同的值,模拟解析器应该是一个函数,而不是一个值。所以代替:
Model: () => ({
id: casual.uuid,
name: casual.title,
}),
你应该做的:
Model: () => ({
id: () => casual.uuid,
name: () => casual.title,
}),
这会导致每次解析字段时调用 id
和 name
。
我的模拟没有为每个项目生成唯一数据,而是每个项目都具有相同的字段值。
选项 1:(理想方法,结果不正确)
AppSync 架构包含 [Model]
的 items
字段,如果我单独放置 Model
解析器,items
中的所有 Model
列表具有相同的值。
const mocks = {
ModelModelConnection: () => ({
items: () => new MockList(5),
}),
Model: () => ({
id: casual.uuid,
name: casual.title,
}),
};
结果...
选项 2:(替代方法,正确结果)
const mocks = {
ModelModelConnection: () => ({
items: () => new MockList(5, () => ({
id: casual.uuid,
name: casual.title,
})),
}),
};
我想选择选项 1,但我似乎无法获得要模拟的独特物品。一直在挠我的头。提前致谢!
如the docs所示,如果您想在每次触发字段的解析器时生成不同的值,模拟解析器应该是一个函数,而不是一个值。所以代替:
Model: () => ({
id: casual.uuid,
name: casual.title,
}),
你应该做的:
Model: () => ({
id: () => casual.uuid,
name: () => casual.title,
}),
这会导致每次解析字段时调用 id
和 name
。