События ReactNative FusionChart в iOS не генерируют / запускают.Только первый будет излучать - PullRequest
0 голосов
/ 17 июня 2019

FushionChart events prop, кажется, не работает должным образом в react-native-fusioncharts.Только первая клавиша в объекте события (пара-ключ-ключ) будет запускаться / испускаться.

В приведенном ниже примере будет регистрироваться console.log("bI");, но не любое другое событие.Даже не onInitialized, поскольку это зависит от события renderComplete.

Но если мы закомментируем событие beforeInitialize, следующее событие будет работать и так далее.Событие onInitialized будет работать, только если мы не отправим events реквизит или не передадим пустой объект.

Обновление

Происходит только в iOS и прекрасно работает в Android.

Сценарий 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,4react-native-webview: 5.8.1fusioncharts: 3,13,5react-native-fusioncharts: 3.0.0

1 Ответ

0 голосов
/ 18 июня 2019

вы можете напрямую связать события FusionCharts внутри директивы реагировать на встроенные диаграммы, посмотрите на этот фрагмент -

<FusionCharts
            type={this.state.type}
            width={this.state.width}
            height={this.state.height}
            dataFormat={this.state.dataFormat}
            dataSource={this.state.dataSource}
            events={this.state.events}
            libraryPath={this.libraryPath} // set the libraryPath property
          />

Для получения более подробной информации перейдите по этой ссылке - https://github.com/fusioncharts/react-native-fusioncharts#working-with-events

...