2016-10-20 3 views
0

私はRelayMutationを仕上げようとしています。私は問題を抱えています。可変値を取得してRelayMutationの中をパスするには?

私はRelayMutationに変数値を渡そうとしていますが、私はそれを行うことができません。

私の目標:私がAcceptを押すと、inviteAnswer変数を取得し、それを入力としてRelayMutationに渡します。

今、私はちょうど "undefined"としてinviteAnswerを取得しています。コンポーネント

私GraphqlMutationの
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}); 
}; 

InputFields(EventEditMutation)

export default mutationWithClientMutationId ({ 
name: 'EventEdit', 
inputFields:{ 
     id: { 
      type: new GraphQLNonNull(GraphQLID) 
     }, 
     inviteAnswer: { 
      type: GraphQLBoolean, 
     } 
    }, 

あなたたちは私を助けることができれば、私は感謝の

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。ありがとう!また、より良い方法があると思うなら、教えてください。

+0

を問題は解決されていますか? –

答えて

0

あなたは突然変異を間違って呼び出しています。

あなたの突然変異変数は、getVariables()の入力フィールドと同じでなければならず、同様に受信側の突然変異の入力フィールドと一致する必要があります。

const mutation = new EventEditMutation({ 
    id: event, 
    inviteAnswer: inviteAnswer, 
}); 

そしてgetVariablesは引数は必要ありません。

getVariables() { 
    return { 
     id: this.props.event.id, 
     inviteAnswer: this.props.inviteAnswer, 
    } 
} 
+0

Ok Alexi2。私はあなたの考えを感謝します。問題は、InviteAnswerがtrueまたはfalseになる可能性があることです。 –

+0

イベントを受け入れると、それは当てはまります。あなたが否定すると、それは間違いです。 –

+0

あなたの提案は、InviteAnswerがtrueの場合にのみ機能します。あなたはその点を理解していますか? –

関連する問題