我一直在審查Apollo文檔,但我沒有看到如何去處理Apollo客戶端中服務器錯誤的信息。Apollo客戶端(反應):處理意外錯誤
例如,假設服務器之一:
- 超時
- 變得不可
- 意外失敗
如何把這個在客戶端進行處理?阿波羅目前失敗的錯誤,如:
Unhandled (in react-apollo) Error: GraphQL error: Cannot ...
我想避免這種情況發生並處理這些錯誤。我怎樣才能使用React Apollo?
參考:
我目前使用的陣營,阿波羅和終極版。
我一直在審查Apollo文檔,但我沒有看到如何去處理Apollo客戶端中服務器錯誤的信息。Apollo客戶端(反應):處理意外錯誤
例如,假設服務器之一:
如何把這個在客戶端進行處理?阿波羅目前失敗的錯誤,如:
Unhandled (in react-apollo) Error: GraphQL error: Cannot ...
我想避免這種情況發生並處理這些錯誤。我怎樣才能使用React Apollo?
參考:
我目前使用的陣營,阿波羅和終極版。
錯誤被沿error
場傳遞您的組件道具:打印http://dev.apollodata.com/react/api-queries.html#graphql-query-data-error
function MyComponent({ data }) {
if (data.error) {
return <div>Error!</div>;
} else {
// ...
}
}
export default graphql(gql`query { ... }`)(MyComponent);
這消息,如果我們檢測到有一個錯誤和error
場未在組件訪問。
您可以編寫更高階的組件來以通用的方式處理錯誤,以便您可以用所有組件包裝所有組件。
A 服務器錯誤可能意味着沒有來自服務器的數據對象,因此也沒有可用的錯誤消息。
假設您查詢某些用戶數據,以便結果對象爲data.user
。然後,你要測試:
if (data.loading !== true && data.user === undefined) {
/* handle the error here */
}
如果你不希望看到的錯誤信息,您可以添加選項,您的查詢:
graphql(query, {
options: {
errorPolicy: 'ignore'
}
})
怎麼樣阿波羅服務器等發送錯誤:proxyConsole。 js:54 Error:GraphQL error:[object Object] at new ApolloError(ApolloError.js:34) at QueryManager.js:129 at –
stackdave