当我尝试在catch子句中使用this.setState时,我从事件处理程序调用mutate函数并获取Invariant Violation错误。
java.util.ArrayDeque
答案 0 :(得分:0)
我认为问题在于你错过了setState
函数中的开始和结束括号。
我会这样写:
class ClassName extends React.Component {
constructor(props) {
super(props);
this.state = {
error,
...
};
this.saveToken = this.saveToken.bind(this);
this.setErrors = this.setErrors.bind(this)
}
...
setErrors(error) {
this.setState({error: error.graphQLErrors}); // should work with brackets
}
handleSubmit(event) {
event.preventDefault();
let { email, password } = this.state;
let { history } = this.props;
let clientKey = getClientKey();
this.props.mutate({
variables: {
email,
password,
clientKey
}
})
.then(this.saveToken)
.catch(this.setErrors)
}
}