首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在映射中使用三元算子?

如何在映射中使用三元算子?
EN

Stack Overflow用户
提问于 2022-01-09 11:08:30
回答 1查看 111关注 0票数 -1

我试图将mealContainer重定向到Meals,以显示该数据的详细信息。顺便说一句,我正在使用mealDB作为API。但问题是,当我单击div来显示细节时,它有时会变成,有时会显示数据。我不知道为什么会发生这种事。因此,我试图通过使用三元操作符来显示当它是时的警告。我怎么能这么做?

代码语言:javascript
复制
import React, { useState } from "react";
import Meals from "../Meals/Meals";
import "./MealCategory.css";

const MealCategory = ({ mealCategory }) => {
  const { strCategory, strCategoryThumb } = mealCategory;
  const [mealsContainer, setMealsContainer] = useState([]);

  const handleOnClick = (e) => {
    e.preventDefault();
    const categoryName = e.target.innerText;
    const categoryUrl = `https://www.themealdb.com/api/json/v1/1/filter.php?c=${categoryName}`;

    fetch(categoryUrl)
      .then((res) => res.json())
      .then((data) => setMealsContainer(data.meals));
    // .then(data => console.log(data))
  };
  return (
    <div>
      <div onClick={handleOnClick} className="col py-3 text-center">
        <div className="card d-flex flex-row align-items-center">
          <div className="img">
            <img src={strCategoryThumb} className="card-img-top" alt="..." />
          </div>
          <div className="card-body">
            <h1 className="card-title fs-2">{strCategory}</h1>
          </div>
        </div>
      </div>
      {mealsContainer.map((meals) => (
        <Meals meals={meals} />
      ))}
    </div>
  );
};

export default MealCategory;
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-01-09 11:57:14

正如您说的,有时您会得到null,所以即使在map中使用三元操作符,也会出现错误,因为您无法在计算为null的数组上运行映射。是的,如果您关心的是如何在map中使用三元运算符,那么:

代码语言:javascript
复制
{mealsContainer ?
mealsContainer.map(meals => <Meals meals={meals} />) : <p>Error loading data!</p>
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70640675

复制
相关文章

相似问题

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