我需要扩展@connection 响应中的 10 项限制
I need to extend the 10 item limit in @connection responses
在 AWS Amplify+ Appsync 中,使用@connection 在 table 之间生成连接非常容易。下面是一个简单的例子 Task
table 和相关的 Comments
type Task @model{
id: ID!
createdAt: String
name: String
comments: [Comments] @connection(name:"TaskComments", sortField: "createdAt")
status: String
}
type Comments @model{
id: ID!
createdAt: String
task: Task @connection(name:"TaskComments", sortField: "createdAt")
taskId: String
}
它甚至会为您自动生成架构:
type Task {
id: ID!
createdAt: String
name: String
comments(limit: Int, nextToken: String): ModelCommentsConnection
Status: String
}
type Query {
///... other not-related queries omitted
getTask(id: ID!): Task
}
问题是查询只有 returns 10 项 (Comments)
即使我有更多。 (我可以在响应中看到 nextToken
,但这是另一回事)。我希望每次初始加载能够 return 20、30 或更多条评论。
我试图传递 limit:1000
,但查询忽略了它。
graphql(
gql(getTask),
{
options: ({match: {params: {id}}}) => ({
variables: {id, limit:1000},
fetchPolicy: 'cache-and-network',
}),
props: ({data: {getTask: task, loading}}) => ({
task,
loading,
}),
},
),
这是一个与以下问题非常相似的问题:
但就我而言,我使用的是 React + AWS Amplify。
非常感谢。
Amplify 为您生成的代码是一个起点。它可能需要一些有限的编辑。
如果你到了 src/graphql/queries.js,你看到像这样的东西了吗?
query GetTasks(id:ID!, limit:Int) {
getTask(input: {id: $id}) {
id
createdAt
name
comments(limit: $limit) {
items {
id
}
}
status
}
}
如果您在此查询定义中没有看到限制,您可能需要添加它。 (PS - 我不是 100% 确定我上面使用的语法,但希望这能为你指明正确的方向。)
刚刚测试了以下代码,它似乎运行良好:
即可以添加 ${nextToken} 以便能够迭代超过 1000 个限制。
query GetTasks(id:ID!, limit:Int) {
getTask(input: {id: $id}) {
id
createdAt
name
comments (limit: $limit nextToken: ${nextToken}) {
items {
id
}
}
status
} }
在 AWS Amplify+ Appsync 中,使用@connection 在 table 之间生成连接非常容易。下面是一个简单的例子 Task
table 和相关的 Comments
type Task @model{
id: ID!
createdAt: String
name: String
comments: [Comments] @connection(name:"TaskComments", sortField: "createdAt")
status: String
}
type Comments @model{
id: ID!
createdAt: String
task: Task @connection(name:"TaskComments", sortField: "createdAt")
taskId: String
}
它甚至会为您自动生成架构:
type Task {
id: ID!
createdAt: String
name: String
comments(limit: Int, nextToken: String): ModelCommentsConnection
Status: String
}
type Query {
///... other not-related queries omitted
getTask(id: ID!): Task
}
问题是查询只有 returns 10 项 (Comments)
即使我有更多。 (我可以在响应中看到 nextToken
,但这是另一回事)。我希望每次初始加载能够 return 20、30 或更多条评论。
我试图传递 limit:1000
,但查询忽略了它。
graphql(
gql(getTask),
{
options: ({match: {params: {id}}}) => ({
variables: {id, limit:1000},
fetchPolicy: 'cache-and-network',
}),
props: ({data: {getTask: task, loading}}) => ({
task,
loading,
}),
},
),
这是一个与以下问题非常相似的问题:
但就我而言,我使用的是 React + AWS Amplify。
非常感谢。
Amplify 为您生成的代码是一个起点。它可能需要一些有限的编辑。
如果你到了 src/graphql/queries.js,你看到像这样的东西了吗?
query GetTasks(id:ID!, limit:Int) {
getTask(input: {id: $id}) {
id
createdAt
name
comments(limit: $limit) {
items {
id
}
}
status
}
}
如果您在此查询定义中没有看到限制,您可能需要添加它。 (PS - 我不是 100% 确定我上面使用的语法,但希望这能为你指明正确的方向。)
刚刚测试了以下代码,它似乎运行良好: 即可以添加 ${nextToken} 以便能够迭代超过 1000 个限制。
query GetTasks(id:ID!, limit:Int) {
getTask(input: {id: $id}) {
id
createdAt
name
comments (limit: $limit nextToken: ${nextToken}) {
items {
id
}
}
status
} }