React / React-Native订阅onChange最高效的方式

时间:2018-05-15 05:51:59

标签: javascript reactjs react-native charts onchange

我正在使用MPAndroidChart(react-native-charts-wrapper)的包装器做一个本机项目,但我认为这个问题超出了我的用例。

在呈现两个图表的组件中,我使用图表onChange prop来设置第二个图表的位置,反之亦然,因为它们在相同的时间范围内显示数据(请参阅gif)。这是方法:

syncToChart2(event) {
    if (
        event.action === 'chartScaled' ||
        event.action === 'chartTranslated'
    ) {
        let { scaleX, scaleY, centerX, centerY } = event;
        this.chart2Zoom = {
            scaleX: scaleX,
            scaleY: scaleY,
            xValue: centerX,
            yValue: centerY
        };
    }
}

目前,图表同步转换速度太慢,如下所示: slow transformation sync

我之前使用setState来订阅更改,但这比使用MobX observable装饰器慢,其效果可以在gif中看到。我期待改进代码。

所以问题是,订阅一个经常发生并且需要立即反映的变化的最高效的方法是什么?

1 个答案:

答案 0 :(得分:1)

可能的解决方案是throttle这类事件(滚动等等)