gpt4 book ai didi

reactjs - React 无法设置未定义的属性

转载 作者:行者123 更新时间:2023-12-05 04:05:54 24 4
gpt4 key购买 nike

我正在使用 axios 发出获取请求。我知道一个事实,当我发出 get 请求时,我得到了正确的数据。

我的构造函数中有一个数组 (allQuotes)。但是,当我尝试在 componentDidMount 中引用它时,它是未定义的。

class App extends Component {

constructor() {
super();
this.allQuotes = [];
}

componentDidMount() {

axios.get("http://getquote.herokuapp.com/get")
.then(function (response) {
this.allQuotes = response.data;
console.log(response.data);
this.getNewQuote();
})
.catch(function (error) {
console.log("Error: ", error);
//console.dir(error);
});
}

运行后,控制台显示“无法设置未定义的属性‘allQuotes’”。

为什么 this 未定义?

最佳答案

最好将 allQuotes 放入状态然后使用 setState

class App extends Component {

constructor() {
super();
this.state = {
allQuotes: [],
}
}

componentDidMount() {

axios.get("http://getquote.herokuapp.com/get")
.then(function (response) {
this.setState({ allQuotes: response.data })
console.log(response.data);
this.getNewQuote();
})
.catch(function (error) {
console.log("Error: ", error);
//console.dir(error);
});
}

关于reactjs - React 无法设置未定义的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50538590/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com