[英]Having trouble setting the state in a promise
我的componentDidMount()
函數中有一系列 promise。 在values.then(function(result)
承諾中,我正在嘗試設置狀態。我收到此錯誤Unhandled Rejection (TypeError): Cannot read property 'setState' of undefined
but researched this error and I need to bind my promise using一個箭頭函數,讓它可以訪問this
關鍵字。
componentDidMount() {
let general = {};
let values = [];
//gets selected setting form schema
getSettingsForms().then((response) => {
this.setState({settingsForms: response});
general = response[this.state.selectedSetting];
}).then(response => {
values = getSettingsConfig(this.state.selectedSetting, general);
values.then(function(result) {
this.setState({
formSchema: result[1],
selectedSetting: this.state.selectedSetting,
settings: result[0]
})
})
})
}
問題是我不知道將箭頭函數放在這種承諾上的位置。 無論我把它放在哪里,我都會收到一條錯誤消息,說是Unexpected token, expected "{"
,然后當我嘗試放入大括號時,我又收到了另一個錯誤。
componentDidMount() {
let general = {};
let values = [];
//gets selected setting form schema
getSettingsForms().then((response) => {
this.setState({settingsForms: response});
general = response[this.state.selectedSetting];
}).then(response => {
values = getSettingsConfig(this.state.selectedSetting, general);
values.then(function(result) => {
this.setState({
formSchema: result[1],
selectedSetting: this.state.selectedSetting,
settings: result[0]
})
})
})
}
將此箭頭函數放入values.then(function(result)
承諾以便我可以設置狀態的正確方法是什么?`
就像您使用的其他兩個箭頭函數一樣:
componentDidMount() {
let general = {};
let values = [];
//gets selected setting form schema
getSettingsForms().then((response) => {
this.setState({settingsForms: response});
general = response[this.state.selectedSetting];
}).then(response => {
values = getSettingsConfig(this.state.selectedSetting, general);
values.then(result => {
this.setState({
formSchema: result[1],
selectedSetting: this.state.selectedSetting,
settings: result[0]
})
})
})
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.