ミューテーションに対してアップデーターを実行しようとしていますが、うまく機能していません。「setValue は関数ではありません」と表示され、newEvent と relayEvent で console.log を実行すると、正しいデータが返されます。お願い助けて!
私のミューテーションは機能していますが、どういうわけかデータが更新されていないため、機能していないアップデーターを実行する必要がありました
私のコードは次のとおりです。
/* @flow */
import { graphql, commitMutation } from "react-relay";
import environment from "../../../relay/environment";
import type { EventSetAttendedInput } from "./__generated__/EventSetAttendedMutation.graphql";
import { connectionUpdater } from "../../../relay/mutationUtils";
const mutation = graphql`
mutation EventSetAttendedMutation($input: EventSetAttendedInput!) {
EventSetAttended(input: $input) {
event {
id
_id
attended(first: 10000) {
__typename
edges {
node {
person {
name
_id
id
}
}
}
}
invitations(first: 10000) {
__typename
edges {
node {
attended
person {
name
_id
id
}
}
}
}
}
error
}
}
`;
let tempID = 0;
const commit = (input: EventSetAttendedInput, onCompleted, onError) => {
return commitMutation(environment, {
mutation,
variables: {
input: {
...input,
clientMutationId: tempID++
}
},
onCompleted,
onError,
updater: store => {
let createAttendedField = store.getRootField("EventSetAttended");
let newEvent = createAttendedField.getLinkedRecord("event");
const relayEvent = store.get(input.eventId);
console.log(`eventStore: `, newEvent);
console.log(`relayEvent: `, relayEvent);
store.setValue(newEvent, "event");
}
});
};
export default { commit };