2017-09-18 7 views
0

나는 react-native와 apollo/graphql을 사용하여 응용 프로그램을 개발 중입니다.반응 구성 요소의 데이터를 Apollo graphql 쿼리로 전달하는 방법은 무엇입니까?

이 경우 내가 원하는 것은 내 구성 요소 (이 경우 바코드 스캐닝)에서 계산을 수행 한 다음 결과를 내 graphql 쿼리에 전달하여 백엔드 API에 바코드 및 결과를 반환 할 수 있도록하는 것입니다 .

나는 몇 시간 동안 아폴로 워드 프로세서와 구글 검색을 해왔다.

여기에 내가 뭘하려는거야의 요점이다 :

class ScanBookScreen extends Component { 

    state = { 
    hasCameraPermission: null, 
    } 

    render() { 
    return (
     <View style={{ flex: 1 }}> 
     <BarCodeScanner 
      onBarCodeRead={// pass this to the query down below} <----- 
     /> 
     </View> 
    ); 
    } 
} 

const lookupTextbooksQuery = gql` 
    query lookupTextbooks($query: String) { 
    lookupTextbooks (query: $query, limit: 1) { 
     totalItems 
     textbooks { 
     id 
     title 
     description 
     } 
    } 
    } 
`; 

export default graphql(lookupTextbooksQuery, { 
    options: { variables: { query: // This is the part that needs to come from the component somehow} }, <---- 

})(ScanBookScreen); 

답변

1
render() { 
    let { refetch } = this.props.data 
    return (
     <View style={{ flex: 1 }}> 
     <BarCodeScanner 
     onBarCodeRead={query => refetch({ query })} 
     /> 
     </View> 
    ); 
} 

당신은 같은 것을 할 것입니다. 초기 쿼리에 구성 요소의 소품을 전달하려는 경우, 당신은이 작업을 수행 할 수 있습니다

options: props => ({ variables: { query: props.query } })

http://dev.apollodata.com/core/apollo-client-api.html#ObservableQuery.refetch