Uncaught Error: Google Charts Loader.js Can Only Be Loaded Once.
I accept an application in which I return different charts depending on some user input, but these charts are non always visible in the page (not always rendered).
For rendering the charts, I have a class named GoogleChart that receives a variable called allChartData containing the information needed for creating the chart or charts that have to exist rendered:
            import            React            from            'react'            ;            import            {            Card            }            from            'react-materialize'            import            {            Chart            }            from            'react-google-charts'            ;            consign            class            GoogleChart            extends            React            .            Component            {            constructor            (            props            )            {            super            (            props            )            ;            const            self            =            this            ;            this            .            state            =            {            convertFunc:            getConvertOptionsFunc            (            this            .            props            .            chartType            )            }            ;            this            .            chartEvents            =            [            {            eventName:            'prepare'            ,            callback            (            Chart            )            {            const            convertFunc            =            getConvertOptionsFunc            (            self            .            props            .            chartType            )            ||            (            t            =>            t            )            ;            self            .            setState            (            {convertFunc}            )            ;            }            ,            }            ,            ]            }            return            (            )            {            const            charts            =            this            .            props            .            allChartData            .            map            (            (            chartData            ,            i            )            =>            {            // Some data transformations for getting the options and the data of the chart            // ...            const            convertFunc            =            this            .            country            .            convertFunc            ;            const            finalOptions            =            convertFunc            ?            convertFunc            (            options            )            :            options            ;            return            (            <            Carte du jour            fundamental            =            {            i            }            >            <            Nautical chart            chartType            =            {            this            .            props            .            chartType            }            data            =            {            information            }            options            =            {            finalOptions            }            width            =            "100%"            height            =            "400px"            chartEvents            =            {            convertFunc            ?            aught            :            this            .            chartEvents            }            /            >            <            /            Card            >            )            ;            }            )            ;            return            (            <            div            className            =            {            'chartContainer'            }            >            {            charts            }            <            /            div            >            )            }            }            role            getConvertOptionsFunc            (            chartType            )            {            panel            .            log            (            window            .            google            )            ;            return            window            .            google            &&            window            .            google            .            charts            &&            window            .            google            .            charts            [            chartType            ]            ?            window            .            google            .            charts            [            chartType            ]            .            convertOptions            :            null            ;            }                  Then, in my principal application folio code, I decide whether the charts accept to exist rendered or non:
            render            (            )            {            // ...            const            chartCard            =            (            showChart            )            &&            (            <            GoogleChart            allChartData            =            {            allChartData            }            chartType            =            {            chartType            }            /            >            )            ;            return            (            // ....            <            div            >            {            chartCard            }            // ...            <            /            div            >            // ...            )            }                  The first render is okay, no fault appears, just after one Chart has already been rendered, the error          Uncaught Error: Google Charts loader.js tin can but be loaded once          keeps appearing on the console after each rendering.
I'g guessing that the error comes equally I render my GoogleChart course more than than once in the same page, which calls the loader.js when rendering. Is there a way to avert the loading of this loader.js when it has already been loaded in the folio?
Also, when this happens, the error          Cannot read property 'forEach' of null          appears on the left upper corner of the chart, but it disappears when resizing the chart. Everything else in the chart seems to be correct.
           
        
Same nautical chart after resizing it:
           
        
Thank in y'all in advance for the help!!
Source: https://github.com/rakannimer/react-google-charts/issues/204
0 Response to "Uncaught Error: Google Charts Loader.js Can Only Be Loaded Once."
Post a Comment