react-jvectormap icon indicating copy to clipboard operation
react-jvectormap copied to clipboard

Error: <circle> attribute cy: Expected length, “NaN”

Open ghost opened this issue 6 years ago • 2 comments

I'm creating a single page application in which I have used react-jvectormap to display online visitors of my site. Everything is working fine but when i try to navigate to the other page it gives an error in console. Here is my code which will better understand you guys.

/**
 * Online Visitor
 */
import React from 'react';
import { VectorMap } from 'react-jvectormap';

// intl messages
import IntlMessages from 'Util/IntlMessages';

// chart config
import ChartConfig from 'Constants/chart-config';

const OnlineVisitorsWidget = () => (
   <div className="card">
      <VectorMap map={'world_mill'}
         backgroundColor={ChartConfig.color.white}
         containerStyle={{
            width: '100%',
            height: '100%'
         }}
         regionStyle={{
            initial: {
               fill: ChartConfig.color.default
            }
         }}
         markerStyle={{
            initial: {
               fill: ChartConfig.color.info,
               stroke: ChartConfig.color.white
            }
         }}
         zoomButtons={false}
         zoomOnScroll={false}
         containerClassName="map"
         markers={[
            { latLng: [41.90, 12.45], name: 'Vatican City' },
            { latLng: [43.73, 7.41], name: 'Monaco' },
            { latLng: [-0.52, 166.93], name: 'Nauru' },
            { latLng: [-8.51, 179.21], name: 'Tuvalu' },
            { latLng: [43.93, 12.46], name: 'San Marino' },
            { latLng: [47.14, 9.52], name: 'Liechtenstein' },
            { latLng: [7.11, 171.06], name: 'Marshall Islands' },
            { latLng: [17.3, -62.73], name: 'Saint Kitts and Nevis' },
            { latLng: [3.2, 73.22], name: 'Maldives' },
            { latLng: [35.88, 14.5], name: 'Malta' },
            { latLng: [12.05, -61.75], name: 'Grenada' },
            { latLng: [13.16, -61.23], name: 'Saint Vincent and the Grenadines' },
            { latLng: [13.16, -59.55], name: 'Barbados' },
            { latLng: [17.11, -61.85], name: 'Antigua and Barbuda' },
            { latLng: [-4.61, 55.45], name: 'Seychelles' },
            { latLng: [7.35, 134.46], name: 'Palau' },
            { latLng: [42.5, 1.51], name: 'Andorra' },
            { latLng: [14.01, -60.98], name: 'Saint Lucia' },
            { latLng: [6.91, 158.18], name: 'Federated States of Micronesia' },
            { latLng: [1.3, 103.8], name: 'Singapore' },
            { latLng: [1.46, 173.03], name: 'Kiribati' },
            { latLng: [-21.13, -175.2], name: 'Tonga' },
            { latLng: [15.3, -61.38], name: 'Dominica' },
            { latLng: [-20.2, 57.5], name: 'Mauritius' },
            { latLng: [26.02, 50.55], name: 'Bahrain' },
            { latLng: [0.33, 6.73], name: 'São Tomé and Príncipe' }
         ]}
      />
   </div>
);

export default OnlineVisitorsWidget;

Console console-vectormap

ghost avatar Jun 12 '18 03:06 ghost

Any update on this, I am having the same issue ?

eng-moataz avatar May 01 '20 14:05 eng-moataz

Hello, I am a developer but, I think I have found the solution to this problem.

This problem seems similar to issue #21. I experienced the same issue when I resize the window. The issue is in "react-jvectormap/packages/jvectormap/src/abstract-element.js" line 68. It seems that the parameter "value" is sometimes NaN. The solution I propose is do do something like this, jvm.AbstractElement.prototype.applyAttr = function (property, value) { if (!Number.isNaN(value)) { this.node.setAttribute(property, value); } };

By wrapping the method call "setAttribute" in an if block and verifying that "value" is not NaN this prevents the error from happening. This solution worked for me, but I don't know if this breaks anything else. I am also assuming that some compilation is happening before I npm install this package, because there is also a "dist" folder in the package @react-jvectormap/core/dist/index.js. This is where I had to apply the fix to the problem in my app.

I also apologize, because I'm new to github and don't know how to use the site very well. I will try my best to suggest this possible solution to the maintainers of this repo.

luis-neira avatar May 27 '22 20:05 luis-neira