这里真的很困惑。我更新到React Router 4,它需要进行一些更改,现在当我的注册表单在服务器端出错时,它会返回控制台错误:
setState(...):只能更新已安装或安装的组件。这个 通常意味着您在未安装的组件上调用了setState()。这是 无操作。请检查RegisterForm组件的代码。
如果我在this.setState({ errors: {createUserError: "Test error" }});
函数之外运行Accounts.createUser
,我真的很困惑,我没有得到安慰错误。
任何建议????
handleSubmit(event) {
event.preventDefault();
this.setState({errors: {} }, function() {
var data = {
email: this.state.email,
password: this.state.password
};
Accounts.createUser(data, (error) => { // This arrow function preserves this
if(error) {
this.setState({ errors: {createUserError: error.reason }});
}
});
});
}
答案 0 :(得分:1)
我认为在调用第二个setState之前卸载组件时可能会发生这种情况。也许Accounts.createUser()
会触发路由器导航或其他卸载组件的东西。