首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当从[ JSON文件]访问数据时,它显示了未定义的react

当从[ JSON文件]访问数据时,它显示了未定义的react
EN

Stack Overflow用户
提问于 2021-08-17 07:45:36
回答 2查看 134关注 0票数 1

我有一个名为JSON的data.json文件,它包含以下数据。

代码语言:javascript
复制
 {
  "nav": [
    "computer engineering",
    "civl engineering ",
    "electrical engineering "
  ],
  "subjects": {
    "computer engineering": {
      "semester 1": [
        "Engineering physics-I",
        "Engineering Chemistry-I",
        "Engineering Mathematics-I",
        "Computer Fundamental",
        "Communication Nepali",
        "Communication English",
        "Computer programming in c",
        "Engineering drawing "
      ]
    }
  }
}

当我从控制台访问数据时,它会给出正确的输出,当我试图使用下面的代码访问数据时,它会给出未定义的输出。

代码语言:javascript
复制
import React from "react";
import { Context } from "../Context";
import data from "../data.json"; 

  const { click, semdata } = React.useContext(Context);
  const [semesterData, setSemesterData] = semdata;
  name = "computer engineering";

更新

{semesterData?console.log( semesterData ):null} {semesterData?Console.log(名称):null }

代码语言:javascript
复制
 {semesterData ? console.log(data.subjects[name][semesterData]) : null}

谢谢。

EN

回答 2

Stack Overflow用户

发布于 2021-08-17 08:16:42

它没有给出正确的输出是因为您正在以三元方式登录控制台,而不是将其呈现给JSX。

代码语言:javascript
复制
 {semesterData ? data.subjects[name][semesterData]) : null}

这样,如果三元返回true,就会呈现它。

票数 0
EN

Stack Overflow用户

发布于 2021-08-17 09:34:45

问题不在于data.json,我认为您使用useContext的方式是错误的。

这是一个简单的示例,展示了如何使用useContext

代码语言:javascript
复制
import React from "react";
const data = {
  nav: ["computer engineering", "civl engineering ", "electrical engineering "],
  subjects: {
    "computer engineering": {
      "semester 1": [
        "Engineering physics-I",
        "Engineering Chemistry-I",
        "Engineering Mathematics-I",
        "Computer Fundamental",
        "Communication Nepali",
        "Communication English",
        "Computer programming in c",
        "Engineering drawing "
      ]
    }
  }
};
const Context = React.createContext();
export default function App() {
  return (
    <Context.Provider value={{ semdata: "semester 1" }}>
      <div className="App">
        <Display />
      </div>
    </Context.Provider>
  );
}
const Display=()=> {
  const { semdata } = React.useContext(Context);
  const [semesterData, setSemesterData] = React.useState(semdata);
  const name = "computer engineering";
  return <div>{semesterData ? data.subjects[name][semesterData] : ""}</div>;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68813473

复制
相关文章

相似问题

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