reactjs - ReactJS从服务器接收表单错误

标签 reactjs error-handling

下面是我在React中的注册功能。如何呈现后端收到的错误?我试图将this.setResponse放入catch部分...这没用。我了解componentWillReceiveProps应该处理更新,但这是来自Service(也是下面)而不是父组件的更新。

如果我打印出错误,我会看到一个带有错误的字典,但是我看不到如何将它们传递给表单或字段进行渲染。

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}
/>

最佳答案

假设UserNameField与auth回调位于同一组件中,则只需设置状态即可触发重新渲染并通过UserNameField传递值作为 Prop 。

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)相同。

关于reactjs - ReactJS从服务器接收表单错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40161222/

相关文章:

error-handling - 在一个地方处理重复的错误情况

python - 为什么Kivy ActionBar不能正常工作?

error-handling - Gradle - 在插件应用期间抛出错误 - "Failed to notify ProjectEvaluationListener.afterEvaluate()"

javascript - 地理定位 API 不适用于移动设备

javascript - js/reactjs - 如何将数据从 json 重建为数组?

node.js - Jest的spyOn方法不会被调用,但是一旦改变测试用例顺序就会被调用

reactjs - 如何使用react-create命令创建带有.tsx扩展名的react组件

postgresql - PostgreSQL-将数据从松散类型的登台表移动到强类型的最终表-并捕获错误

javascript - Create React App 是否提供开箱即用的 gzip 压缩?

javascript - 这是什么错误?