GraphQL Mutation results updating
up vote
0
down vote
favorite
I have a mutation for my react component which pulls down data:
mutation FetchQuestion($level: Int!, $topic: Topics!)
generateQuestion(level: $level, topic: $topic)
id
question
working
expanded @client
marks
The expanded field is added using a resolver
const GeneratedQuestion =
expanded: () => false,
The data is passed down to a component to query and render the results
<Mutation mutation=QUESTION_MUTATION variables= level, topic >
(generateQuestion, data ) => <List generateQuestion=generateQuestion data=data />
</Mutation>
However, I then use another mutation to change the value of expanded
const expandQuestion = (_: any, variables: questionID: string ,
cache : any) =>
const id = `GeneratedQuestion:$variables.questionID`
const fragment = gql`
fragment completeQuestion on GeneratedQuestion
expanded
`;
const questions = cache.readFragment( fragment, id );
const data = ...questions, expanded: true ;
cache.writeData( id, data );
return null
;
I would like the List to be updated from the Mutation is has originally, however, I don't believe Mutations work like that.
Instead, I've tried to build a Query directly to that cached but cannot get anything to work as it does not exist directly in my Query Schema. Is there a way for the Mutation to update it's data when the cache is updated? Is there a way to query the cache using <Query />
?
graphql apollo react-apollo apollo-client
add a comment |
up vote
0
down vote
favorite
I have a mutation for my react component which pulls down data:
mutation FetchQuestion($level: Int!, $topic: Topics!)
generateQuestion(level: $level, topic: $topic)
id
question
working
expanded @client
marks
The expanded field is added using a resolver
const GeneratedQuestion =
expanded: () => false,
The data is passed down to a component to query and render the results
<Mutation mutation=QUESTION_MUTATION variables= level, topic >
(generateQuestion, data ) => <List generateQuestion=generateQuestion data=data />
</Mutation>
However, I then use another mutation to change the value of expanded
const expandQuestion = (_: any, variables: questionID: string ,
cache : any) =>
const id = `GeneratedQuestion:$variables.questionID`
const fragment = gql`
fragment completeQuestion on GeneratedQuestion
expanded
`;
const questions = cache.readFragment( fragment, id );
const data = ...questions, expanded: true ;
cache.writeData( id, data );
return null
;
I would like the List to be updated from the Mutation is has originally, however, I don't believe Mutations work like that.
Instead, I've tried to build a Query directly to that cached but cannot get anything to work as it does not exist directly in my Query Schema. Is there a way for the Mutation to update it's data when the cache is updated? Is there a way to query the cache using <Query />
?
graphql apollo react-apollo apollo-client
add a comment |
up vote
0
down vote
favorite
up vote
0
down vote
favorite
I have a mutation for my react component which pulls down data:
mutation FetchQuestion($level: Int!, $topic: Topics!)
generateQuestion(level: $level, topic: $topic)
id
question
working
expanded @client
marks
The expanded field is added using a resolver
const GeneratedQuestion =
expanded: () => false,
The data is passed down to a component to query and render the results
<Mutation mutation=QUESTION_MUTATION variables= level, topic >
(generateQuestion, data ) => <List generateQuestion=generateQuestion data=data />
</Mutation>
However, I then use another mutation to change the value of expanded
const expandQuestion = (_: any, variables: questionID: string ,
cache : any) =>
const id = `GeneratedQuestion:$variables.questionID`
const fragment = gql`
fragment completeQuestion on GeneratedQuestion
expanded
`;
const questions = cache.readFragment( fragment, id );
const data = ...questions, expanded: true ;
cache.writeData( id, data );
return null
;
I would like the List to be updated from the Mutation is has originally, however, I don't believe Mutations work like that.
Instead, I've tried to build a Query directly to that cached but cannot get anything to work as it does not exist directly in my Query Schema. Is there a way for the Mutation to update it's data when the cache is updated? Is there a way to query the cache using <Query />
?
graphql apollo react-apollo apollo-client
I have a mutation for my react component which pulls down data:
mutation FetchQuestion($level: Int!, $topic: Topics!)
generateQuestion(level: $level, topic: $topic)
id
question
working
expanded @client
marks
The expanded field is added using a resolver
const GeneratedQuestion =
expanded: () => false,
The data is passed down to a component to query and render the results
<Mutation mutation=QUESTION_MUTATION variables= level, topic >
(generateQuestion, data ) => <List generateQuestion=generateQuestion data=data />
</Mutation>
However, I then use another mutation to change the value of expanded
const expandQuestion = (_: any, variables: questionID: string ,
cache : any) =>
const id = `GeneratedQuestion:$variables.questionID`
const fragment = gql`
fragment completeQuestion on GeneratedQuestion
expanded
`;
const questions = cache.readFragment( fragment, id );
const data = ...questions, expanded: true ;
cache.writeData( id, data );
return null
;
I would like the List to be updated from the Mutation is has originally, however, I don't believe Mutations work like that.
Instead, I've tried to build a Query directly to that cached but cannot get anything to work as it does not exist directly in my Query Schema. Is there a way for the Mutation to update it's data when the cache is updated? Is there a way to query the cache using <Query />
?
graphql apollo react-apollo apollo-client
graphql apollo react-apollo apollo-client
asked Nov 9 at 20:12
Adam
163
163
add a comment |
add a comment |
active
oldest
votes
active
oldest
votes
active
oldest
votes
active
oldest
votes
active
oldest
votes
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53232705%2fgraphql-mutation-results-updating%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown