【问题标题】:Accessing json returning undefined react js访问json返回未定义的反应js
【发布时间】:2021-06-05 04:06:09
【问题描述】:

我正在尝试获取一些 json 数据以在 Ui 中显示,但是当我使用 map 方法对其进行迭代时,我一直未定义。任何帮助将不胜感激。这是代码沙箱上的链接https://codesandbox.io/s/late-wood-kx8w2?file=/src/App.js

【问题讨论】:

    标签: json reactjs object react-hooks


    【解决方案1】:

    这一行

    const [items, setItem] = useState(Object.keys(trees));
    

    将树键传递给 View 函数,而不是实际数据。我相信你的意思是传递数据。您的代码将 'name' 和 'children' 作为 {items} 传递,然后由 View.js 显示。

    以下代码向您展示了如何解析树并获取名称和值。它不完整,但它应该让您开始了解如何进行遍历。

    import React, { useState } from "react";
    
    export default function Start(){
        const trees = {
          name: "root",
          children: [
            {
              name: "child1",
              children: [
                { name: "child1-child1", data: "c1-c1 Hello" },
                { name: "child1-child2", data: "c1-c2 JS" }
              ]
            },
            { name: "child2", data: "c2 World" }
          ]
        };
    
        const treesCopy = trees;
    
        function Traverse(tree){
            var treesCopy = tree;
            var str = [];
            for (var prop in treesCopy) {
                console.log(prop);
                if (prop=="children"){
                    str = str + "name: "+ prop + ",";
                    treesCopy = treesCopy[prop][0];
                    // console.log('New tree: ',treesCopy);
                    return str + Traverse(treesCopy);
                    }
                str = str + "name: "+ prop +" value: " + treesCopy[prop]+",";
                }
            return str;
        };
    
        const str = Traverse(treesCopy);
    
        return(
        <>
        {
        str ? str.split(",").map(place => <p> {place} </p>) 
        : ""
        }
        </>
        )
    }
    

    【讨论】:

    • 感谢您的回复@jaesle 如何传递嵌套数据?
    • 我实际上将它更改为 Object.values 并且它只呈现第一个项目根,其余显示 [Object object]
    • 我添加了一些代码,可以帮助您开始正确的道路。它不完整,但您可以根据需要调整它。
    • 谢谢@jaesle先生,我真的很感激一切
    猜你喜欢
    • 2018-09-02
    • 1970-01-01
    • 2021-07-19
    • 2019-12-13
    • 1970-01-01
    • 2022-12-16
    • 2020-08-20
    • 2018-02-21
    相关资源
    最近更新 更多