我目前的情况是在没有设置状态并且设置不能在渲染中使用的情况下做出反应。
componentDidMount() {
axios.get(`url`)
.then(function(response){
const test = response.data;
this.setState({
data:test
});
}.bind(this));
setTimeout(function test(){
console.log('filterdata',this.state.data);
},2000);
}
这是我一直在尝试使用的示例代码,但这里的问题是即使我将状态设置为全局 this 不包含该值。我已经做了绑定来防止同样的事情。我也尝试过另外两件事
componentDidMount() {
axios.get(`url`)
.then((response)=>{
this.setState({
data:response.data
});
});
setTimeout(function test(){
console.log('filterdata',this.state.data.templateFields);
},6000);
}
还有这个
componentDidMount() {
var self = this;
axios.get(`url`)
.then(function demo(response){
self.setState({
data:response.data
});
});
setTimeout(function test(){
console.log('filterdata',self.state.data.templateFields);
},6000);
}
最后一个在 self 中具有价值,但不能在我使用“this”这样的渲染中使用
<ul className="filter-options">
{
this.state.data.map(function(val){
<p>{val.templateFields}</p>
}, this)
做出一个简单的承诺并使用它真的有那么难吗?有没有更好的方法来做到这一点,我可能不知道?