我正在尝试使用setState函数在此回调函数中将“绘图”状态设置为json对象“数据”。我知道正确传递了“数据”对象,因为我可以在this.setState()调用之前将其记录为控制台行,但是,当我尝试设置状态时,出现“ TypeError:Cannot读取未定义的属性'setState'。” 这是代码:
getPlot() {
fetchServiceData.call(this, '/plot', function (data) {
this.setState({plot: data}, function () {
if(this.state.plot) {
Bokeh.embed.embed_item(this.state.plot, 'AAPL_plot');
}else{
console.error('Unable to set plot state.')
}
});
});
}
componentDidMount() {
this.getPlot();
}
我的构造函数如下:
constructor(props) {
super(props);
this.state = {
plot: null,
};
this.getPlot = this.getPlot.bind(this)
}
我需要以某种方式将“ this”绑定到我的fetchServiceData()函数,还是该函数的回调?
答案 0 :(得分:0)
该错误很明显:您可以将setState方法应用于未定义的值。
因此,您必须通过在其上调用this
将上下文.bind(this)
绑定到您的方法。