Reactjs 显示NaN而不是0英里

Reactjs 显示NaN而不是0英里,reactjs,react-native,Reactjs,React Native,我正试图用测地仪计算以英里为单位的距离。英里数计算得很准确。唯一的问题是,当当前位置的经度和纬度与目标位置的经度和纬度相同时,我得到的是NaN,而不是0英里。我不确定如何修复此NaN值。我试着这样做: if (item.cLat === item.LatL) dist: 0 当当前位置和目的地的经度和纬度相同时,我仍然得到NaN。下面是我的代码和Json文件: var geodist = require('geodist') var dist = geodist(

我正试图用测地仪计算以英里为单位的距离。英里数计算得很准确。唯一的问题是,当当前位置的经度和纬度与目标位置的经度和纬度相同时,我得到的是NaN,而不是0英里。我不确定如何修复此NaN值。我试着这样做:

  if (item.cLat === item.LatL)
            dist: 0
当当前位置和目的地的经度和纬度相同时,我仍然得到NaN。下面是我的代码和Json文件:

var geodist = require('geodist')
 var dist = geodist({lat: item.cLat, lon:item.cLong}, {lat: item.LatL, lon: item.Long2}, 'mi')
    if (item.cLat === item.LatL)
            dist: 0

return(
    <View style={{ backgroundColor: index %2 ===0? '#ffdfba':'#bae1ff'}} >

  <Text style={styles.AddressSpace} >Miles:{dist}</Text>



               </View>
)

]

如注释中所述,您不能使用dist:0设置dist的值。将其设置为dist=0。dist:0仅在将dist设置为对象中的属性时适用,如:var someObject={dist:0};。看在上帝的份上,伙计,给我一些分号。它们不疼

但我把它作为一个完整的答案,而不仅仅是另一个注释,因为示例代码中的条件只是检查等效纬度。因此,在您的示例中,即使修复了dist:0问题,它也会显示共享相同纬度的任意两个位置的距离为零,即使它们具有不同的经度。所以你需要有这样的东西:

if (item.cLat === item.LatL && item.cLong === item.Long2) {
    dist = 0;
}
但是如果你仍然看到NaN,那么最完整的解决方案就是简单地检查特定的情况。因此,您可以放弃整个if item.cLat===item.LatL&&item.cLong===item.Long2,并将其替换为以下内容:

if (isNan(dist)) {
    dist = 0;
}
仅供参考,这里有一个指向isNaN函数的链接:


这是因为lat和lon不是数字字符串。尝试将它们强制为数字,如下所示:

if (item.cLat === item.LatL && item.cLong === item.Long2) {
    dist = 0;
}
var geodist=需要“geodist” var dist=geodist{lat:+item.cLat,+lon:item.cLong},{lat:+item.LatL,lon:+item.Long2},'mi' 如果item.cLat==item.LatL 地区:0 回来 迈尔斯:{dist}
将dist:0设为dist=0我已尝试dist=0。在上面给出的示例中,item.cLat和item.LatL仍然是字符串。但是你没有理由把它们转换成数字来比较。使用他的示例数据,item.cLat==item.LatL的计算结果为TRUE。我不得不使用isNaNdist,它马上就可以工作了。非常感谢你!!另一个解决方案不起作用。