Ich möchte meine JSON Antwort Fehler nach Ajax Aufruf in meiner 'FormError' Komponente.ReactJS Ajax Antwort Fehler Rendering in Komponente
Meine Fehlerkomponente sieht wie folgt aus:
var FormError = React.createClass({
render: function() {
return (
<span className="form-error"></span>
);
}
});
Meine Form:
var EmailForm = React.createClass({
getInitialState: function(){
return {
password:'',
email: ''
};
},
componentDidMount: function() {
this.serverRequest = $.get('/accounts/email-form/', function (result) {
var userInfo = result;
this.setState({
email: userInfo.email
});
}.bind(this));
},
submit: function (e){
var self;
e.preventDefault()
self = this;
console.log(this.state);
var data = {
password: this.state.password,
email: this.state.email,
CSRF: csrftoken
};
// Submit form via jQuery/AJAX
function csrfSafeMethod(method) {
// these HTTP methods do not require CSRF protection
return (/^(GET|HEAD|OPTIONS|TRACE)$/.test(method));
}
$.ajaxSetup({
beforeSend: function(xhr, settings) {
if (!csrfSafeMethod(settings.type) && !this.crossDomain) {
xhr.setRequestHeader("X-CSRFToken", csrftoken);
}
}
});
$.ajax({
type: 'POST',
url: '/accounts/email-form/',
data: data
})
.done(function(data) {
toastr.success('Profile updated');
})
.fail(function(jqXhr) {
toastr.error('There is some errors in your request');
});
},
passwordChange: function(e){
this.setState({password: e.target.value});
},
emailChange: function(e){
this.setState({email: e.target.value});
},
render: function() {
return (
<form onSubmit={this.submit}>
<div className="form-half">
<label htmlFor="password" className="input-label">Current Password</label>
<BasicInputPassword valChange={this.passwordChange} val={this.state.password}/>
<FormError/>
</div>
<div className="form-half">
<label htmlFor="lastname" className="input-label">New email</label>
<BasicInput valChange={this.emailChange} val={this.state.email}/>
<FormError/>
</div>
<button type="submit" className="button secondary" >Submit</button>
</form>
);
}
});
Dieser Code funktioniert, Ajax-Aufruf geben Sie mir Antwort json mit Fehlern
{"email":["Email already exists."],"password":["This field may not be blank."]}
aber ich haven 't Idee, wie kann ich diese Fehler an meinen Code und meine reagierende Komponente anhängen.
Hmm, ich glaube nicht, dass ich Sie gut verstehe. Ich habe Statusfehler erstellt, aber wie Update-Statusvariable in Ajax Call-Fehler? – Robson
Überprüfen Sie die Antwort, die vom Server kommt, und rufen Sie 'setState' auf, um den Status Ihres Components zu aktualisieren. Sie machen das gleiche mit E-Mail – Igorsvee