react-jvectormap
react-jvectormap copied to clipboard
Error: <circle> attribute cy: Expected length, “NaN”
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
Any update on this, I am having the same issue ?
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.