【问题标题】:ReactNative Fusioncharts event not firing in iOSReactNative Fusioncharts 事件未在 iOS 中触发
【发布时间】:2021-07-31 17:03:14
【问题描述】:

我正在开发与 Fusioncharts 事件相关的功能,该功能无法按预期工作,但图表绘制和其他功能按预期工作。我在谷歌上找到了以下 PR。 https://github.com/fusioncharts/react-native-fusioncharts/issues/48 但它对我不起作用。

以下是我的版本和代码:

"fusioncharts": "3.15.3",
"react-native-fusioncharts": "4.1.2",
"react-native-fs": "2.14.1",
"react-native-webview": "11.0.0"
    <ReactNativeFusionCharts
        ref={(ref) => {
            this.refChart = ref;
        }}
        dataEmptyMessage=""
        {...fcProps}
        type={chartType}
        width={this.width}
        height={this.height}
        dataFormat="json"
        dataSource={{ ...dataSource, chart: chartData }}
        libraryPath={this.libraryPath}
        onInitialized={(chartApi) => {
            console.log(
                'onInitialized - API: ',
                this.constructor.name,
                this.state.fullscreenMode,
                chartApi
            );
        if (!this.state.fullscreenMode) {
                this._chartApi = chartApi;
            }
        }}
        events={{
            beforeInitialize: () => {
                this.forceHideLoader();
            },
            initialized: () => {
                console.log('initialized');
            },

            noDataToDisplay: () => {
                console.log('noDataToDisplay');
            },

            dataLoadRequestCompleted: () => {
                console.log('lrc');
            },
            dataLoadError: () => {
                console.log('le');
            },
            dataLoadCancelled: () => {
                console.log('lc');
            },
            beforedataload: () => {
                console.log('bdl');
            },
            beforeDataUpdate: () => {
                console.log('bdu');
            },
            dataUpdated: () => {
                console.log('du');
            },
            realTimeUpdateComplete: () => {
                console.log('tuc');
            },
            chartCleared: () => {
                console.log('cc');
            },
            chartClick: () => {
                console.log('cclk');
            },
            dataplotclick: (e, a) => {
                Alert.alert(`You clicked on ${e.data.categoryLabel}`);
            }
        }}
    />

    {this.renderLoader()}
</React.Fragment>```

【问题讨论】:

  • 升级到最新版本的 react-native-fusion: "5.0.0", 组件已经改版,事件在那里工作:npmjs.com/package/react-native-fusioncharts
  • 谢谢,@Zapdos13,我提交了支持票,他们也给了我同样的建议。
  • 很好,希望问题解决
  • 嗨@Zapdos13,是的,问题已解决。感谢您的指导!

标签: javascript react-native fusioncharts react-native-webview


【解决方案1】:

感谢 fusionchart 支持服务和@Zapdos13 的指导,我能够解决这个问题。希望这对愿意升级react-native-fusioncharts的人有所帮助

您所要做的就是遵循本指南。 https://www.npmjs.com/package/react-native-fusioncharts

他们网站上的说明似乎没有更新。所以请注意不要与旧版本的实现混淆。

无需运行fc-build-assets --fc-template ./assets/fusioncharts-tpl.html --fc-library ./assets/fusioncharts 或修改react-native-fusion: "5.0.0" 中的资产文件夹

一旦我升级以下软件包的版本,问题就解决了:

react-native-fusion: "5.0.0"

"fusioncharts": "^3.17.0"

"react-native-webview": "^11.4.4"

另外,需要安装"react-native-unimodules": "^0.13.3"并按照本指南https://docs.expo.io/bare/installing-unimodules/#installation进行配置(您可能需要在配置后运行pod install并确保安装了必要的unimodule依赖项)

最后,添加更新您的metro.config.js 如下:

const { getDefaultConfig } = require('metro-config');

module.exports = (async () => {
  const {
    resolver: { sourceExts, assetExts }
  } = await getDefaultConfig()
  return {
    transformer: {
      getTransformOptions: async () => ({
        transform: {
          experimentalImportSupport: false,
          inlineRequires: false
        }
      })
    },
    resolver: {
      sourceExts,
      assetExts: [...assetExts, 'fcscript']
    }
  }
})()

【讨论】:

  • 是否可以举办博览会,我已经按照这些步骤进行操作,但它给了我很多错误。
  • 真的不知道能不能做到。 React Native 的 Fusioncharts 有一个复杂的安装过程。如果您有许可证,最好提出支持票。这就是我能够解决问题的方法。
猜你喜欢
  • 2016-01-14
  • 2019-10-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-28
  • 1970-01-01
相关资源
最近更新 更多