FusionChart events
prop が で正しく機能していないようですreact-native-fusioncharts
。イベント オブジェクト (キーと値のペア) の最初のキーのみが発火/放出されます。
以下の例でconsole.log("bI");
は、ログに記録されますが、他のイベントは記録されません。イベントonInitialized
にもよるから仕方ない。renderComplete
しかし、イベントをコメントアウトするbeforeInitialize
と、次のイベントが機能します。
onInitialized
イベントは、小道具を送信しないevents
か、空のオブジェクトを渡さない場合にのみ機能します。
アップデート
iOS でのみ発生し、Android では問題なく動作します。
更新 2
このブログの「3.onMessage/postMessage」のポイント2を確認してください。
問題は、iOS で window.postMessage 呼び出しを連続して実行すると、メッセージが配信される前に毎回 URL が上書きされ、最後の呼び出しが優先されるため、最初の呼び出しが失われることです。
シナリオ 1
// myChart.js
...
import ReactNativeFusionCharts from "react-native-fusioncharts";
const _libraryPath = Platform.select({
android: { uri: "file:///android_asset/fusioncharts.html" },
ios: require("./../../../assets/fusioncharts.html")
});
export default class MyChart extends PureComponent {
refChart = null;
_chartApi = null;
render() {
return (
<ReactNativeFusionCharts
ref={(ref) => {
this.refChart = ref;
}}
.... // <-- Add necessary props
libraryPath={_libraryPath}
onInitialized={(chartApi) => {
console.log("onInitialized - API"); // <-- Not emitting
this._chartApi = chartApi;
}}
events={{
beforeInitialize: () => {
console.log("bI"); // <-- Will emit
},
initialized: () => {
console.log("i"); // <-- Not emitting
},
chartClick: () => {
console.log("cclk"); // <-- Not emitting
}
}}
/>
);
}
}
シナリオ 2
// myChart.js
...
render() {
return (
<ReactNativeFusionCharts
ref={(ref) => {
this.refChart = ref;
}}
.... // <-- Add necessary props
libraryPath={_libraryPath}
onInitialized={(chartApi) => {
console.log("onInitialized - API"); // <-- Not emitting
this._chartApi = chartApi;
}}
events={{
// beforeInitialize: () => {
// console.log("bI");
// },
// initialized: () => {
// console.log("i");
// },
chartClick: () => {
console.log("cclk"); // <-- Will emit
}
}}
/>
);
}
...
バージョン:
react-native
: 0.59.4
react-native-webview
: 5.8.1
fusioncharts
: 3.13.5
react-native-fusioncharts
: 3.0.0