[英]ReactNative Fusioncharts event not firing in iOS
我正在研究与 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>```
感谢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']
}
}
})()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.