当前位置: 首页 > 知识库问答 >
问题:

如何在React中循环JSON对象

拓拔君博
2023-03-14

我试图从以下JSON对象数据中检索信息。json:

{
  "status": "ok",
  "feed": {
    "title": "NOS Nieuws",
  },
  "items": [
    {
      "title": "Test Title",
      "description": "Test description",
      "enclosure": {
        "link": "https://examplelink.com/1008x567.jpg",
        "type": "image/jpeg"
      },
      "categories": []
    },
    {
      "title": "Test Title 2",
      "description": "Test 2",
      "enclosure": {
        "link":  "link": "https://examplelink.com/1008x567.jpg",
        "type": "image/jpeg"
      },
      "categories": []
    }
  ]
}

因此,我想循环这个JSON对象,以显示所有可用项及其相应的标题、说明和附件链接。

我知道我可以分别访问它们:

const items = data.items;
const title = items.title;
const url = items.enclosure.link;

通常我会对数据进行for循环和循环。项目[i]。但是,由于这是一个react和一个对象,而不是一个数组,因此它的工作方式不同。

我当前的代码:

class Feed extends Component {
  render() {
    const items = data.items[0];
    const title = items.title;
    const url = items.enclosure.link;
    const description = items.description;
    const feed = [
      {
        url: url,
        title: title,
        description: description
      }
    ];

    return (
      <div className="feed">
        <h1>Newsfeed</h1>
        <div className="columns is-multiline">
          {feed.map(article => (
            <div className="column is-one-third">
              <NewsCard
                article={article}
                title={items.title}
                description={items.description}
              />
            </div>
          ))}
        </div>
      </div>
    );
  }
}

现在它只显示对象的第一个条目(因为它有const项目=data.items[0])我如何循环data.json并在NewsCard组件中显示其内容?我知道每个孩子都应该有一个独特的“钥匙”道具,但这就是我卡住的地方。

共有3个答案

秋建义
2023-03-14
 const feed = data.items
  {feed.map(item => (
        <div className="column is-one-third">
          <NewsCard
            article={item.enclosure.link}
            title={item.title}
            description={item.description}
          />
        </div>
      ))}

试试这条路

葛昕
2023-03-14

你可以这样做。


    class Feed extends Component {
      render() {        
        let newsCards = data.items.map(item => {
            <div className="column is-one-third">
                  <NewsCard
                    article={item}
                    title={item.title}
                    description={item.description}
                  />
                </div>
        });

        return (
          <div className="feed">
            <h1>Newsfeed</h1>
            <div className="columns is-multiline">
              {newsCards}
            </div>
          </div>
        );
      }
    }

费承载
2023-03-14

我想循环这个JSON对象来显示所有可用的项目及其相应的标题、描述和附件链接

然后,不要这样做:

const items = data.items[0];

试试这个:

const items = data.items;

然后,您可以使用map功能,如下所示:

items.map(item => (
  <div className="column is-one-third">
    <NewsCard
      article={item.enclosure.link}
      title={item.title}
      description={item.description}
    />
  </div>
));
 类似资料:
  • 问题内容: 刚接触React并尝试循环对象属性,但是React抱怨对象不是有效的React子对象,有人可以给我一些如何解决此问题的建议吗?我添加了createFragment,但不确定是否需要执行此操作或应该采用哪种方法? JS 渲染功能 控制台错误 问题答案: 问题在于您的使用方式,因为它总是会返回。您可能正在寻找返回新数组的方法: 如果仍然要使用,则必须执行以下操作: 更新: 如果您正在编写E

  • 我正在制作一个锦标赛应用程序,其中多个(4,6,或8)的球员将相互匹配。 它是以圆为基础的。因此,如果一共有6名选手,那么将有5轮比赛,每轮比赛有3对选手。每个球员每轮只能出现一次。 我一直在使用for-loops来获得所需的组合,但是我如何将这些对分离成循环,这样它们就不会重复了呢?以下是我到目前为止所做的(制作每一个组合): 有没有什么通用的方法可以将两对组合分配到每一轮比赛中,而不让球员在同

  • 问题内容: 这似乎很简单,但是以某种方式我没有让内部数组元素在Angular 2上执行ngFor循环。 我有如下的json数组,我需要遍历嵌套数组的响应数组中的可用“路由”。现在任何人都可以让我知道如何获得应该简单的路由,并且我正在尝试这样。routes= respondeJson [0] .routes或this.routes = resonseJson [0] [‘routes’]但没有运气。

  • 我是json的新手,所以我从ajax调用中得到一个json响应 现在,我只能循环json对象 这是我的json 有人能帮忙吗

  • 问题内容: 如果我在一个循环中有一个循环,并且一旦满足一条语句,我想中断主循环,那我应该怎么做? 这是我的代码: 问题答案: 使用标记的中断: 另请参阅 Java代码中的“循环:”。 这是什么,为什么会编译? 文献资料

  • 我是Angular2的新手,我正在尝试循环一个JSON对象,这个对象是我从GET请求返回的,但无法完成它。 我的JSON对象: 我有棱角的剧本的一部分: 我确实把数据拿回来了--这太好了。但是,我想将ID推入一个数组。在Javascript中,我会这样做: 推后阵: 我正在苦苦寻找一种方法来用Angular2实现同样的结果。如有任何帮助,我们将不胜感激!