React setstate及其回调由于某种原因不起作用

时间:2017-03-10 07:31:09

标签: javascript reactjs charts fusioncharts

我正在制作一个简单的反应应用程序,我使用Fusioncharts渲染两个图表。正如在Fusioncharts示例中给出的那样,我试图基于来自另一个图表(饼图)的输入来改变一个图表(柱形图)的状态。问题是,我有两个组件的共同祖先。 内容是Dash和topcontent的父级。 因此饼图在破折号组件中,我使用回调道具(onslice)来调用父组件的函数,并设置父级状态以通过topcontent改变发送到柱形图的道具。这是代码。

filtercallback(c,k){
console.log("In callback",c,k); 
// this shows up which means the call was successful
this.setState({  filtertext: c,filtersource:k  },function()   
                 {  // Callback function
               console.log("callback by",c,k);
             // this doesn't show up and state isn't set
                });

无论出于何种原因,国家都没有被设定。包含console.log()的回调也没有记录任何内容。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:8)

您可能缺少对filtercallBack的 this 的绑定。尝试在构造函数中设置:

this.filtercallBack = this.filtercallBack.bind(this);

假设它是一个类函数。