2016-11-16 15 views
2

以下のコンポーネントはクエリと突然変異がありますが、コンポーネントはデータと突然変異の小道具を受け取りません。Apollo:コンポーネントにデータ/突然変異の小道具が渡されない

私のコードに何か間違ったり不足していますか?クエリは実行されますが、それは単に渡されません。 this.props.mutateとthis.props.dataは未定義です。

class ResetConfirm extends React.Component { 
    static propTypes = { 
    intl: intlShape.isRequired, 
    token: React.PropTypes.string, 
    data: React.PropTypes.shape({ 
     loading: React.PropTypes.bool.isRequired, 
     checkToken: React.PropTypes.array, 
    }).isRequired, 
    mutate: React.PropTypes.func.isRequired, 
    } 

    submitForm = (model) => { 
    this.setState({ 
     loading: true, 
    }); 

    this.props.mutate({ variables: { password: model.password, token: this.props.token } }) 
     .then(({ data }) => { 
     // redirect 
     }).catch((error) => { 
     console.log('there was an error sending the query', error); 
     }); 
    } 
    render() { 
     //render jsx 
    } 
} 

const CheckTokenQuery = gql` 
    query CheckToken($token: String!) { 
    checkToken(token: $token) { 
     response 
    } 
    } 
`; 

const SetNewPasswordMutation = gql` 
    mutation SetNewPasswordMutation($password: String!, $token: String!) { 
    resetPassword(password: $password, token: $token) { 
     response 
    } 
    } 
`; 

export default graphql(SetNewPasswordMutation, { name: SetNewPasswordMutation })(
    graphql(CheckTokenQuery, { name: CheckTokenQuery, forceFetch: true })(injectIntl(connect(ResetConfirm))) 
); 

答えて

2

あなたは突然変異小道具SetNewPasswordMutationに名前を付けるためにnameを使用しています。

これはあなたのようなあなたのコンポーネントからそれを呼び出す必要があることを意味します。ありがとうございました

this.props.SetNewPasswordMutation(
    { variables: { password: model.password, token: this.props.token } }) 
+0

! :) –

関連する問題