2016-10-02 7 views
26

Apollo React 문서 http://dev.apollodata.com/react/queries.html#basics에는 구성 요소가 표시 될 때 자동으로 가져 오는 예제가 있지만 버튼을 클릭하면 쿼리를 실행하고 싶습니다. 단추를 클릭 할 때 "다시"쿼리를 가져 오는 예를 볼 수 있지만 처음에는 쿼리를 원하지 않습니다. 돌연변이를 호출하는 방법이 있지만 쿼리를 어떻게 호출합니까? 여기에 설명 된대로Apollo GraphQL React - 클릭시 쿼리하는 방법?

답변

35

당신은 withApollo 고차원-구성 요소를 사용하여 아폴로 클라이언트에 대한 참조를 전달하여이를 수행 할 수 있습니다 https://www.apollographql.com/docs/react/basics/setup.html#withApollo

을 그런 다음 객체로 건네받는, 그래서 등에 client.query를 호출 할 수

class MyComponent extends React.Component { 
    runQuery() { 
    this.props.client.query({ 
     query: gql`...`, 
     variables: { ... }, 
    }); 
    } 

    render() { ... } 
} 

withApollo(MyComponent); 

호기심에서 벗어나 클릭 이벤트에 대해 쿼리를 실행하는 목표는 무엇입니까? 아마도 기본 목표를 달성하는 더 좋은 방법이있을 것입니다.

+0

검색 바에 이것을 사용하고 싶습니다. – kayla

+0

부모에게 gql HOC가있는 구성 요소에 이것을 사용하면 부모 componentWillReceiveProps가 트리거됩니다. 이유는 모르겠다. 더 좋은 방법이 있습니까? 아마 희박 해. –

+1

이것은 소품을 업데이트하지 않습니까? 왜? 결과가 성공적으로 나온 후에 어떻게 소품을 업데이트 할 수 있습니까? – CharlesS