我的應用程式中有一些按鈕在下面呼叫 handleTypeChange 函式 - 我的問題是我必須單擊它們兩次才能更新狀態并正確呼叫 getCOBs 函式。
誰能指出我做錯了什么?
handleTypeChange(event){
this.setState({filtertype: event.target.getAttribute('value')});
if (event.target.getAttribute('value') === "Commercial")
{
this.setState({filtercommercial: 'True'});
this.setState({filterpackage: 'False'});
}
else if (event.target.getAttribute('value') === "Package")
{
this.setState({filtercommercial: 'False'});
this.setState({filterpackage: 'True'});
}
else{
this.setState({filtercommercial: 'False'});
this.setState({filterpackage: 'False'});
}
getCOBs(this.state.filtercommercial, this.state.filterpackage).then(populateCOBDropdown);
}
uj5u.com熱心網友回復:
this.setState函式需要一些時間來保存狀態。
handleTypeChange(event){
const value = event.target.getAttribute('value');
this.setState({
filtertype: value,
filtercommercial: value === "Commercial"? "True" : "False",
filterpackage: value === "Package"? "True" : "False",
}, () => {
getCOBs(this.state.filtercommercial, this.state.filterpackage).then(populateCOBDropdown);
});
}
的callback函式this.setState將在states更新后呼叫。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/531067.html
標籤:反应
