Reactjs this.props.login不是函数react apollo+;撰写+;图形ql

Reactjs this.props.login不是函数react apollo+;撰写+;图形ql,reactjs,graphql,react-apollo,apollo-client,Reactjs,Graphql,React Apollo,Apollo Client,在点击登录功能输入电子邮件和密码后 import { graphql, compose } from 'react-apollo' import gql from 'graphql-tag' const AUTHENTICATE_USER_MUTATION = gql` query authenticateUserMutation($email: String!, $password: String!) { login(email: $email, passwor

在点击登录功能输入电子邮件和密码后

import { graphql, compose } from 'react-apollo'
import gql from 'graphql-tag'

const AUTHENTICATE_USER_MUTATION = gql`
      query authenticateUserMutation($email: String!, $password: String!) { 
        login(email: $email, password: $password) {
          token
        }
      }
    `

    const LOGGED_IN_USER_QUERY = gql`....`
    export default compose(
      graphql(AUTHENTICATE_USER_MUTATION, {
        name: 'authenticateUserMutation',
        options: (props) => ({ 
           variables: { email: props.email, 
                         password: props.password } 
        })
      }),
      graphql(LOGGED_IN_USER_QUERY, { 
        name: 'loggedInUserQuery',
        options: { fetchPolicy: 'network-only' }
      })
    )(withRouter(Login))

它给出的错误这个.props.authenticateUserVariation不是一个函数

好吧,基本上你是在触发一个查询,但称之为变异

您必须为查询交换变异,因此它看起来如下所示:

OnclickLogin  = async () => {
  const { email, password } = this.state
  await this.props.authenticateUserMutation({variables: {email, password}})

}
在底部,您不需要这些选项。如果您想启动查询,则需要它们

const AUTHENTICATE_USER_MUTATION = gql`
      mutation authenticateUserMutation($email: String!, $password: String!) { 
        login(email: $email, password: $password) {
          token
        }
      }
    `
export default compose(
      graphql(AUTHENTICATE_USER_MUTATION, {
        name: 'authenticateUserMutation'
      }),