我正在制作一个简单的反应应用程序,我使用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()的回调也没有记录任何内容。有人可以帮忙吗?
答案 0 :(得分:8)
您可能缺少对filtercallBack的 this 的绑定。尝试在构造函数中设置:
this.filtercallBack = this.filtercallBack.bind(this);
假设它是一个类函数。