2017-04-27 9 views
17

Apollo 설명서를 검토하고 있지만 Apollo 클라이언트에서 서버 오류를 처리하는 방법에 대한 정보는 표시되지 않습니다.Apollo Client (React) : 예기치 않은 오류 처리

  • 시간이 초과
  • 가 예기치 않게이이 클라이언트에서 처리하는 방법을

실패에 도달 할 수 없을 : 예를 들어

, 서버 하나가 있다고 가정? 나는이 일어나고 이러한 오류를 처리하지 않도록하고 싶습니다

Unhandled (in react-apollo) Error: GraphQL error: Cannot ...

: 아폴로는 현재 다음과 같은 오류와 함께 실패합니다. React Apollo를 사용하면 어떻게 할 수 있습니까? 참고로


: 나는 현재 반작용 - 아폴로 돌아 오는을 사용하고

. 우리는 오류가 있다는 것을 감지하면 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 필드는 구성 요소에 액세스되지 않은 :

답변

6

오류는 구성 요소 소품에 error 분야에 따라 전달됩니다.

오류를 일반적인 방법으로 처리하기 위해 고차 구성 요소를 작성하여 모든 구성 요소를 그 구성 요소로 래핑 할 수 있습니다.

+0

무엇처럼 아폴로 서버에서 전송 오류에 대한 : proxyConsole. js : 54 오류 : GraphQL 오류 : [object Object] at new ApolloError (ApolloError.js : 34) , QueryManager.js : 129 at stackdave

0

서버 오류은 서버에서 오는 데이터 개체가 없으므로 오류 메시지가 표시되지 않을 수도 있습니다.

결과 개체가 data.user이되도록 일부 사용자 데이터를 쿼리한다고 가정 해 봅시다. 그런 다음 테스트 할 : 오류 메시지를 표시하지 않으려면

if (data.loading !== true && data.user === undefined) { 
    /* handle the error here */ 
} 

, 당신은 당신의 쿼리에 옵션을 추가 할 수 있습니다

graphql(query, { 
    options: { 
    errorPolicy: 'ignore' 
    } 
})