自从我最近迁移到新的react-apollo版本后,我的LoginPage组件出现了问题 .
我已经集成了变异组件,将电子邮件和密码发布到我的graphql服务器,该服务器返回令牌和用户信息 .
这是突变:
const LOGIN_MUTATION = gql`
mutation loginMutation($email: String!, $password: String!) {
loginUser(email: $email, password: $password) {
token
user {
id
firstName
lastName
}
}
}
`;
我不明白为什么当我想提交信息并运行变异时会出现此错误:
Uncaught (in promise) TypeError: Object(...)(...).subscribe is not a function
这是我的LoginPage组件:
class LoginPage extends Component {
constructor(props) {
super(props);
this.state = {
email: "",
password: "",
firstName: "",
lastName: ""
};
this.handleInputChange = this.handleInputChange.bind(this);
}
handleInputChange(event) {
const target = event.target;
const value = target.value;
const name = target.name;
this.setState({
[name]: value
});
}
render() {
const { firstName, lastName, email, password } = this.state;
return (
<div>
<Mutation mutation={LOGIN_MUTATION} variables={{email: email, password: password }}>
{(loginMutation, { loading, error, data }) => (
<div>
<LoginForm
onSubmit={loginMutation}
onChange={this.handleInputChange}
/>
</div>
)}
</Mutation>
</div>
);
}
这是我的LoginForm组件:
class LoginForm extends Component {
render() {
return (
<div>
<Card>
<div>
<div>
<TextField
name="email"
floatingLabelText="Email"
type="text"
onChange={this.props.onChange}
/>
</div>
<div>
<TextField
name="password"
floatingLabelText="Mot de passe"
type="password"
onChange={this.props.onChange}
/>
</div>
<CardActions>
<div>
<RaisedButton
label="Se connecter"
primary={true}
type="submit"
onClick={this.props.onSubmit}
fullWidth
/>
</div>
</CardActions>
</div>
</Card>
</div>
);
}
}
export default LoginForm;
谢谢您的帮助 .