2017-05-11 55 views
1

我想實現光標分頁,並遵循文檔中的例子,但我不斷收到錯誤說'無法查詢字段「光標」類型「查詢」'光標分頁與Apollo/GraphQL不斷給我錯誤

我知道「遊標」字段實際上並不存在於帳戶架構中......但是從我正在從文檔中讀取的內容......您必須將其包含在gql查詢中的某處。此外,不知道我是否缺少任何東西,但是我對如何構建查詢以允許光標分頁有點困惑。

原始查詢:(運行這給了我沒有錯誤)

const AccountsQuery = gql` 
    query { 
    accounts { 
     accountName 
     accountId 
    } 
    } 
`; 

新建查詢:(此給出 「無法找到帳戶光標場」 錯誤)

const AccountsQuery = gql` 
    query Accounts($cursor: String){ 
    accounts(cursor: $cursor) { 
     cursor 
     accountName 
     accountId 
    } 
    } 
`; 

GraphQL包裝:

export default graphql(AccountsQuery, { 
    props: ({ data: { loading, cursor, accounts, fetchmore } }) => ({ 
    loading, 
    accounts, 
    loadMoreEntries() { 
     return fetchmore({ 
     query: AccountsQuery, 
     variables: { 
      cursor: cursor, 
     }, 
     updateQuery: (previousResult, { fetchMoreResult }) => { 
      const previousEntry = previousResult.entry; 
      const newAccounts = fetchMoreResult.accounts; 

      return { 
      cursor: fetchMoreResult.cursor, 
      entry: { 
       accounts: [...newAccounts, ...previousEntry] 
      }, 
      }; 
     }, 
     }) 
    } 
    }) 
})(QuickViewContainer); 

任何幫助,將不勝感激讓光標分頁工作!

+0

我認爲你在服務器的查詢定義中缺少遊標。這是怎麼樣的? –

回答

2

聽起來像cursor字段沒有得到實現在服務器上。你Account類型需要有一個領域,像這樣:

Account { 
    cursor 
    accountName 
    accountId 
} 

有關如何做光標分頁約定,你應該遵循標準規範接力。您可以在符合Relay規範的GraphQL API中使用read more about how it's implemented here

這將使您的查詢是這樣的:

query { 
    viewer { 
    allAccounts { 
     edges { 
     cursor 
     node { 
      accountName 
      accountId 
     } 
     } 
    } 
    } 
} 

每條邊帳戶具有對應於一個節點,將自動填充來自服務器的全局唯一的不透明光標ID的光標。

希望這會有所幫助!