首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >ReatJS。没有显示正确的输出

ReatJS。没有显示正确的输出
EN

Stack Overflow用户
提问于 2022-10-08 01:57:38
回答 1查看 19关注 0票数 0

我正在开发一个UI,我的任务是开发UI,它显示了基于‘地板价格’的正确的'NFT类‘。这是我使用的代码:

代码语言:javascript
复制
function NFTclass(){
try{
  if(((EthValue * DollarValue).toPrecision(2)) >= '40.00'){
    setnftclasses('Class A NFT')
  } else if(((EthValue * DollarValue).toPrecision(2)) >= '30.00'){
    setnftclasses('Class B NFT')
  } else if(((EthValue * DollarValue).toPrecision(2)) >= '20.00'){
    setnftclasses('Class C NFT')
  } else if(((EthValue * DollarValue).toPrecision(2)) >= '10.00'){
    setnftclasses('Class D NFT')
  } else if(((EthValue * DollarValue).toPrecision(2)) < '10.00'){
    setnftclasses('No Class Determined')
  }
} catch(e) {
  console.log(e)
}
}

((EthValue * DollarValue).toPrecision(2))等于楼价。

如您所知,基于地板价格,我希望UI显示NFT所属的类。但我有麻烦了。如果((EthValue * DollarValue).toPrecision(2))返回两位数的输出,则代码运行良好。

但是,如果它返回一个单个数字的输出,代码就不会返回正确的类。

这是一个截图

我认为它是从读第一个数字而不是前两个数字来宣布班级的。

我的问题是,在执行代码之前,我能做什么使代码在十进制之前读取这两个数字。

另外,还有另一个问题。在一个例子中测试时,地板价格是2+ETH,它显示了不正确的类。

这是截图

现在,如果我认为它实际上是从读取第一个数字来声明这个类,代码应该在这个屏幕截图中声明这个NFT 类C类而不是类D。我也不知道我做错了什么。

EN

回答 1

Stack Overflow用户

发布于 2022-10-08 02:20:12

"5.0" > "40.0" // true,因为它对字符串进行操作,并进行字典比较。

5.0 > 40.0 // false

在尝试对数字进行操作时,不应使用对字符串的转换。

代码语言:javascript
复制
const classMap = { A: 40, B: 30 };
const floor = EthValue * DollarValue;
const key = Object.entries(classMap).find(entry => floor>=entry[1])?.[0];
const className = key ? `Class ${key} NFT` : "No class determined";
setnftclasses(className);
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73993889

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档