三元运算符无法正常工作

Posted

技术标签:

【中文标题】三元运算符无法正常工作【英文标题】:Ternary operator is not working correctly 【发布时间】:2021-02-06 18:02:23 【问题描述】:

如果状态为空,我需要显示"N/A",否则我需要解析我状态中的数据,但现在我的三元运算符不起作用=>如果列表为空,则什么都没有完全显示(而不是"N/A")。

 useEffect(() => 
    const fetchData = async () => 
      const proxyurl = "https://cors-anywhere.herokuapp.com/";
      const url =
        "https://api.privatbank.ua/p24api/pubinfo?json&exchange&coursid=5";
      try 
        const result = await axios(proxyurl + url, 
          headers: 
            Origin: "https://api.privatbank.ua/",
          ,
        );
        const data = result.data.filter((item) => item.ccy !== "BTC");
        setRateList(data);
       catch 
        console.log("Can’t access " + url + " response. Blocked by browser?");
      
    ;
    fetchData();
  , []);




  <div className=css["currency__rate_content"]>
    rateList.map((item) => (
      <ul className=css["currency__rate_content_list"] key=item.ccy>
        <li className=css["currency__rate_content_list_item"]>
          item.ccy === "RUR" ? "RUB" : item.ccy
        </li>
        <li className=css["currency__rate_content_list_item"]>
          rateList.length ? parseFloat(item.buy).toFixed(2) : "N/A"
        </li>
        <li className=css["currency__rate_content_list_item"]>
          rateList.length ? parseFloat(item.sale).toFixed(2) : "N/A"
        </li>
      </ul>
    ))
  </div>

【问题讨论】:

如果 rateList 为空,则没有要映射的 item 迭代。 Turnaries 甚至不会被评估。 【参考方案1】:

如果您展示您所在州的示例,我可能会提供更好的答案,但您尝试过吗?

rateList === '' ? 'N/A' : parseFloat(item.buy).toFixed(2)

【讨论】:

以上是关于三元运算符无法正常工作的主要内容,如果未能解决你的问题,请参考以下文章

三元运算符问题 SwiftUI

多个三元运算符

三元运算符不改变状态

视图主体中的 swiftui 三元运算符

Javascript 三元运算符的运算符优先级

带有对象的Javascript三元运算符