示例:https://codesandbox.io/s/j4mo8qpmrw
文档:https://www.apollographql.com/docs/link/links/state.html#default
TLDR:这是一个待办事项列表,@ client查询参数不会过滤掉列表.
这是查询,将$ id作为参数
const GET_TODOS = gql`
query todos($id: Int!) {
todos(id: $id) @client {
id
text
}
}
`;
Run Code Online (Sandbox Code Playgroud)
查询在那里传递变量
<Query query={GET_TODOS} variables={{ id: 1 }}>
/* Code */
</Query>
Run Code Online (Sandbox Code Playgroud)
但默认解析器不使用该参数,您可以在上面的codesandbox.io示例中看到它.
文档说它应该有用,但我似乎无法弄清楚我错过了什么.提前致谢!
我的模拟不会为每个项目生成唯一的数据,而是每个项目都具有相同的字段值。
选项1:(理想的方法,错误的结果)
AppSync 架构包含一个items字段[Model],如果我将Model解析器单独放置,则列表Model中的所有值都items具有相同的值。
const mocks = {
ModelModelConnection: () => ({
items: () => new MockList(5),
}),
Model: () => ({
id: casual.uuid,
name: casual.title,
}),
};
Run Code Online (Sandbox Code Playgroud)
结果是...

选项2:(替代方法,正确结果)
const mocks = {
ModelModelConnection: () => ({
items: () => new MockList(5, () => ({
id: casual.uuid,
name: casual.title,
})),
}),
};
Run Code Online (Sandbox Code Playgroud)

我想选择选项 1,但我似乎无法让独特的项目被嘲笑。我一直在为这个摸不着头脑。提前致谢!
api ×1
apollo ×1
apollostack ×1
aws-appsync ×1
graphql ×1
javascript ×1
json-api ×1
mocking ×1
openapi ×1
react-apollo ×1
resolver ×1
rest ×1