以下是我在React中的注册功能。如何呈现从后端收到的错误?我试图将一个this.setResponse放入catch部分......但是没有用。我知道componentWillReceiveProps应该处理更新,但这是来自服务(也在下面)而不是来自父组件的更新。
如果我打印错误,我可以看到有错误的字典,但我看不到如何将它们传递给表单或字段进行渲染。
signup(evt) {
evt.preventDefault();
...
Auth.signup(dict)
.catch(function(err) {
alert("There's an error signing up");
console.log(err.response);
});
},
Auth服务的定义如下:
signup(dict) {
console.log(dict);
return this.handleAuth(when(request({
url: UserConstants.SIGNUP_URL,
method: 'POST',
type: 'json',
data: dict
})));
}
我希望通过以下内容向字段发送错误:
<UserNameField
ref="username"
responseErrors={this.responseErrors}
/>
答案 0 :(得分:1)
假设UserNameField
与auth回调在同一个组件中,您可以设置触发重新渲染的状态,并将值作为道具传递给UserNameField
。
signup(evt) {
evt.preventDefault();
...
Auth.signup(dict)
.catch((err) => {
alert("There's an error signing up");
console.log(err.response);
this.setState({error: err});
});
},
<UserNameField
ref="username"
responseErrors={this.responseErrors}
error={this.state.error}
/>
这与.bind(this)
相同。