如何在setState函数调用中利用变量?

时间:2019-07-27 15:45:40

标签: reactjs components state

我正在尝试使用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()函数,还是该函数的回调?

1 个答案:

答案 0 :(得分:0)

该错误很明显:您可以将setState方法应用于未定义的值。
因此,您必须通过在其上调用this将上下文.bind(this)绑定到您的方法。