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'
}),