2017-09-01 2 views
0

私は、このコンポーネントを、引数フィールドを介してpropsを渡している親コンポーネントから呼び出しています。しかし、私が突然変異関数を呼び出そうとすると、私はエラーを取得し続けます。突然変異は関数ではありません。私はこの問題の原因を理解していない。Apollo client:mutateは関数ではありません

const OnboardingComplete = (props, { mutate }) => { 

    const currentUser = { 
    id: props.id, 
    firstName: props.first_name, 
    lastName: props.last_name 
    } 


return (

<View style={styles.subcontainer}> 
     <Button bordered rounded iconLeft 
     style={styles.importButton} 
     onPress={() => 
     mutate({ variables: { user: currentUser } }) 
     }> 
     <Text style={styles.buttonText}>Complete </Text> 
     <Icon name='arrow-forward' /> 
     </Button> 
     </View> 

); 
} 


const addUser = gql` 
    mutation addUser($user: UserInput!) { 
    addUser(input: $user) 
    } 
`; 

    export default graphql(addUser)(OnboardingComplete); 

答えて

1

あなたはgraphql HOCを持つコンポーネントをラップする場合(あなたの操作が変異である場合)、それはdata小道具(あなたの操作は、クエリの場合)またはmutate小道具のいずれかを受け取ります。

代わり
const OnboardingComplete = (props, { mutate }) => { 

、あなたの式は次のようになります:

const OnboardingComplete = (props) => { 

あなたのコードは、あなたが小道具以外の第2の目的を、期待して示し、引数としてコンポーネントに渡されますprops.mutateに電話してmutateにアクセスする必要があります。オブジェクトの非構造化を使用する場合は、常に次のようにすることもできます。

const OnboardingComplete = ({ first_name, last_name, id, mutate }) => { 
関連する問題