Как сделать запрос на основе идентификатора в реагировать родной с graphql? - PullRequest
0 голосов
/ 05 ноября 2018

Я хочу сделать запрос на основе job_id: ID!, но мне кажется, что я что-то не так делаю, и я хочу понять, что именно.

Итак, я беру идентификатор работы.

render() {
 const { job } = this.props.navigation.state.params;
 const job_id = job._id;
 ........
}

Так что теперь я хочу использовать это job_id для моего запроса здесь

const GET_APPLICATIONS = gql`
  query getJobApplicationsForThisJob($job_id: ID!) {
    getJobApplicationsForThisJob(job_id: $job_id) {
      _id
    }
  }
`;

const DELETE_JOB = gql`
  mutation deteleJob($_id: ID!) {
      deleteJob(_id: $_id) {
        message
      }
    }
`;

const mutationConfig = {
    props: ({ mutate, ownProps }) => ({
        deleteJob: (_id) => mutate({ variables: { _id } }),
        ...ownProps,
    })
}

export default compose(
    withApollo,
    graphql(GET_APPLICATIONS, { name: "getApplications" }),
    graphql(DELETE_JOB, mutationConfig)
)(JobDetails);

Но я получаю следующую ошибку

Invariant Violation: The operation 'getJobApplicationsForThisJob' wrapping 'JobDetails' is expecting variable 'job_id' but it was not found in the props passed to 'Apollo(JobDetails)'

Есть идеи?

1 Ответ

0 голосов
/ 05 ноября 2018

Проблема решена.

Я использовал HOC вот так

export default compose(
    withApollo,
    graphql(GET_APPLICATIONS, { name: "getApplications", options: (props) => ({ variables: { job_id: props.navigation.state.params.job._id } }) }),
    graphql(DELETE_JOB, mutationConfig)
)(JobDetails);
...