当前位置: 首页 > 面试题库 >

在React中遍历JSON

酆出野
2023-03-14
问题内容

我有以下代码:

export class Highlights extends React.Component {
    render() {
        return (
            <div>
                {JSON.stringify(this.props.highlights_data.data)}
            </div>
        )
    }
}

打印出以下内容:

{“ active”:{“ label”:“ Active”,“ value”:“ 12”},“ automatic”:{“ label”:“
Automatic”,“ value”:“ 8”},“ waiting”:{ “ label”:“正在等待”,“ value”:“ 1”},“
manual”:{“ label”:“ Manual”,“ value”:“ 3”}}

我怎样才能遍历highlights_data.data道具调用另一个组件传承labelvalue


问题答案:

除了@Dan的答案,我认为其他答案对您没有帮助/有用,因为它们不会遍历您的JSON对象。

为了正确执行此操作,您需要遍历JSON对象中的每个键。您可以通过几种方法来执行此操作,其中之一是使用Object.keys()。像下面的代码片段。

此解决方案遍历JSON对象中的每个键,并将其推入数组。一旦有了该数组,就可以map()像往常一样使用遍历它,并将相关的props传递给另一个子组件。

class MyApp extends React.Component {

  render() {

    var json = {"active":{"label":"Active","value":"12"},"automatic":{"label":"Automatic","value":"8"},"waiting":{"label":"Waiting","value":"1"},"manual":{"label":"Manual","value":"3"}};

    var arr = [];

    Object.keys(json).forEach(function(key) {

      arr.push(json[key]);

    });

    return <ul>{arr.map(item => <MyAppChild key={item.label} label={item.label} value={item.value} />)}</ul>;

  }

}



class MyAppChild extends React.Component {

  render() {

    return <li>{this.props.label + " - " + this.props.value}</li>;

  }

}



ReactDOM.render(<MyApp />, document.getElementById('myapp'));


<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script>

<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script>

<div id="myapp"></div>


 类似资料:
  • 问题内容: 我在下面的EJS中有代码, 行的输出是正确的,由3个对象组成的数组,每个对象具有属性ID,名称等。我可以操纵行以在JS中填充表格。但是,我想知道是否有一种方法可以通过上述方式完成? 当我运行上面的代码时,JSON.stringify(data).length不是3,而是整个字符串的长度。 另一个问题是当我尝试添加 <%警报(’t’); %>或<%window.alert(’t’); %

  • 我是新的反应本机,我试图简单地迭代通过一个示例json文件,但我收到的错误未定义不是一个函数(评估'this.state.results.map') 我最初将状态设置为对象,因此不确定为什么会收到此错误。 这里是JS: 因此,我将renderJSON()编辑为,并删除了responseData的大括号,正如您所说,因为它已经是一个对象: 我添加了一个控制台日志,以查看是否可以输出一些数据,并且可以

  • 问题内容: 我在C#中使用JSON.NET解析来自Klout API的响应。我的回答是这样的: 如您所见,它包含5个标签。也许下次是6或1或其他一些数字。我想遍历JSON并获取每个标签的值。我不知道会有多少个循环。我该如何解决? 问题答案: 要么

  • 问题内容: 我对Xcode在《 Swift编程语言指南》中给我进行此实验的答案感到有些困惑: 我知道随着字典的使用,最大的数字被设置为变量。但是,我对为什么Xcode会说要根据每次测试设置5次,1次或3次感到困惑。 查看代码时,我发现应该单独在“ Prime”中将其设置6次(2、3、5、7、11、13)。然后,它应该跳过“斐波那契”中的任何数字,因为这些数字都小于最大数字,该数字当前已从“ Pri

  • 问题内容: 我有以下代码,它使用来遍历中的元素。 我如何使用like中的新功能或执行相同任务。提前致谢 问题答案: 这等效于Java 8流API中的代码。不是100%等效,但是您可以了解主要思想。

  • 问题内容: 我已经有一段时间没有编码了,并试图重新使用Python。我正在尝试编写一个简单的程序,通过将每个数组元素值相加来求和一个数组。这就是我所拥有的: 我收到以下错误: 我发现我想做的事情显然很简单: 但是很明显,我无论如何都不正确地遍历数组,我认为这是我需要为其他目的而正确学习的东西。谢谢! 问题答案: 当您像在数组中那样循环时,for变量(在此示例中)是数组的当前元素。 例如,如果你的就