兩個相同的ajax調用不同的參數,第二個覆蓋第一個,導致結果不一樣,每次刷新它。第一個setState我已經設置了測試:[],testsHistories:[]在第一個Ajax中,第二個測試集狀態。爲什麼第二個Ajax調用會影響第一個?ReactJS兩個相同的ajax調用不同的參數
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');
}
});
}
是否使用了賦值的'setState'?如果是這樣,您將只能從一個查詢中獲得結果。要將結果「累加」爲單個狀態對象的屬性,請使用[Object#assign](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign) – Will
@DarrenSweeney爲什麼你會手動設置狀態並放棄React自動處理狀態更新? – sbking
@sbking你是對的,我讀錯了,我以爲他是從 –