zwei gleiche Ajax-Aufrufe mit unterschiedlichen Parametern, die zweite überschreibt zuerst, was Ergebnis unterschiedlich sein, jedes Mal, wenn ich es aktualisieren. setState in der ersten Ich habe Tests gesetzt: [], testersHistories: [] in der ersten Ajax, zweite einen gesetzten Zustand für Tests. Warum wirkt sich der zweite Ajax-Anruf auf den ersten aus?ReactJS zwei gleiche Ajax-Aufrufe mit unterschiedlichen Parameter
class App extends Component {
constructor(props){
super(props);
this.onFormSubmit = this.onFormSubmit.bind(this);
this.state = { tests: [],
testsHistories: [], testInfo: []};
$.ajax({
url: "http://localhost:xxxx/api/Testing?sorton=datecompleted&order=asc",
success: (data) => {
console.log("success");
this.setState({tests: data, testsHistories: data}
);
},
error: function(xhr,status,err){
console.log('error');
}
});
$.ajax({
url: "http://localhost:xxxx/api/Testing?"+ admissionId,
// url: "http://localhost:xxxx/api/Testing?admissionId=5",
success: (data) => {
console.log("success");
this.setState({testInfo: data});
},
error: function(xhr,status,err){
console.log('error');
}
});
}
Wird 'setState' eine Zuweisung verwenden? Wenn dies der Fall ist, können Sie nur ein Ergebnis aus einer Abfrage erhalten. Verwenden Sie [Object # assign] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign) – Will
, um die Ergebnisse als Eigenschaften für Ihr einzelnes Statusobjekt zu "akkumulieren" @DarrenSweeney Warum sollten Sie den Status manuell festlegen und auf die automatische Verarbeitung von Statusaktualisierungen durch React verzichten? – sbking
@sbking du hast Recht, ich habe es falsch gelesen, ich dachte, er stellte das gleiche Zustandsobjekt von beiden –