【发布时间】:2017-03-01 19:46:39
【问题描述】:
我正在尝试完成 RelayMutation。我遇到了一个问题。
我正在尝试将变量值传递给我的 RelayMutation 但我无法做到。
我的目标:当我按下 Accept 时,获取inviteAnswer 变量并将其作为输入传递给我的 RelayMutation。
现在,我只是将邀请答案设为“未定义”。
RelayMutation.js(EventEditMutation.js)
import Relay from 'react-relay';
export default class EventEditMutation extends Relay.Mutation {
static fragments = {
event: () => Relay.QL`
fragment on Event {
id
guests {
user
status
}
},
`,
};
getVariables(inviteAnswer) {
console.log(inviteAnswer);
return {
id: this.props.event.id,
inviteAnswer: true,
}
}
getMutation() {
return Relay.QL`mutation {
EventEdit,
}`;
}
getFatQuery() {
return Relay.QL`
fragment on EventEditPayload {
Event {
guests
}
}
`;
}
getConfigs() {
return [{
type: 'FIELDS_CHANGE',
fieldIDs: {
Event: {
guests: this.props.event.guests,
}
}
}];
}
}
组件上的AcceptFunction
accept = () => {
const inviteAnswer = true; <<<--- I want this value here!
console.log(inviteAnswer);
const { event } = this.props.viewer;
console.log(event);
const mutation = new EventEditMutation({
event: event,
inviteAnswer: inviteAnswer,
});
console.log(inviteAnswer)
const callbacks = {
onSuccess: (payload) => {
console.log('success: ', payload);
},
onFailure: (err) => {
console.log('failure: ', err);
},
};
RelayStore.commitUpdate(mutation, callbacks);
Actions.chat({eventId: event.id});
};
我的 GraphqlMutation(EventEditMutation) 的 InputFields
export default mutationWithClientMutationId ({
name: 'EventEdit',
inputFields:{
id: {
type: new GraphQLNonNull(GraphQLID)
},
inviteAnswer: {
type: GraphQLBoolean,
}
},
如果你们能帮助我,我将不胜感激。谢谢!另外,如果您认为有更好的方法,请告诉我。
【问题讨论】:
-
问题解决了吗?
标签: relayjs relay graphql-js