React Project에서 데이터가 화면에 렌더링되지 않습니다.

damon.ponder

기본 JSON을 화면에 렌더링하려는 반응 응용 프로그램이 있습니다. 아래에 JSON 객체의 작은 스 니펫을 배치하겠습니다. researchPage에서 데이터를 표현하려고합니다. 전체 구성 요소 클래스를 아래에 배치하겠습니다. 명확히하기 위해 추가 정보를 제공 할 수 있는지 알려주십시오.

db.json-데이터를 가져 오려는 JSON 파일입니다.

{

    "hits": [
        {
            "_index": "issflightplan",
            "_type": "issflightplan",
            "_key": "IDP-ISSFLIGHTPLAN-0000000000000447",
            "_version": 1,
            "_score": null,
            "ContentType": {
                "__deferred": {
                    "uri": "https://bi.sp.iss.nasa.gov/Sites/FP/_api/Web/Lists(guid'a9421c5b-186a-4b14-b7b2-4b88ee8fab95')/Items(252)/ContentType"
                }

researchPage-이것은 JSON 데이터도 렌더링하려는 구성 요소 페이지입니다. 콘솔을 봤는데 오류가 발생하지 않는 것 같습니다. 페이지가 표시되고 H1 레코드 메타 데이터도 화면에 렌더링되지만 그 아래에는 H3 또는 단락이 없습니다.

import React, { Component } from "react";
import ReactDOM from "react-dom";
import data from "../../data/db.json";


console.log(data);
class ResearchPage extends Component {
    constructor(props) {
        super(props);

        this.state = {
            isLoading: false,
            error: null,
            dataSet: [],
            data: [],
        }
    }

    componentDidMount() {
        this.setState({ isLoading: true });
        fetch(data)
            .then((res) => {
                debugger;
                if (res.ok) {
                    return res.json();
                } else {
                    throw Error("Error Fetching Data");
                }
            })
            .then((data) => {
                console.log(data);
                this.setState({ data: data, isLoading: false });
            })
            .catch((error) => {
                console.log((error) => this.setState({ error }));
            });
    }
    render() {

        const { error, isLoading, data } = this.state;
        const dataItems =  data.map((dataSet) => (
            <div key={dataSet.id}>
                <h3>{dataSet._index}</h3>
                <p>{dataSet.uri}</p>
            </div>
        ));
        if (error) {
            return <p style={{ color: "red" }}>{error.message}</p>;
        }
        if (!isLoading) {
            return <p>Loading Data...</p>;
        } else
            return (
                <div>
                    <h1>Record MetaData</h1>
                        {dataItems}
                </div>
            );
    }
}
export default ResearchPage;
Nicholas_Jones

최신 정보:

나는 그것을 작동시켰다.

내가 직면 한 문제는 데이터를 표시하려고 할 때 render 메서드의 데이터가 초기화되지 않았지만 didmount 내부에서 매핑을 수행하고 목록에 액세스하려는 것처럼 보이기 때문에 지정해야한다는 것입니다. 그.

const hits = data.hits.map((dataSet) => (
      <div key={dataSet.id}>
         <h3>{dataSet._index}</h3>
         <p>{dataSet.uri}</p>
       </div>
 ));

 this.setState({ data: hits, isLoading: false });


render() {
    const { error, isLoading, data } = this.state;
    if (error) {
        return <p style={{ color: "red" }}>{error.message}</p>;
    }
    if (isLoading) {
        return <p>Loading Data...</p>;
    } else {
        return (
            <div>
                <h1>Record MetaData</h1>
                {data}
            </div>
        );
    }

}

아 또한 db.json을 공용 디렉토리에 넣고 모듈을 찾을 수 없기 때문에 다음과 같이 액세스했습니다.

fetch("db.json", {
        headers: { 
        'Content-Type': 'application/json',
        'Accept': 'application/json'
    }})
.then (...)

문제 해결 방법

예제 테스트 데이터를 제공하여 IO 문제인지 확인하려면 json 객체를 수동으로 자바 스크립트 객체로 변환 할 수 있습니다.

this.setState({ data: [
    { _index: 'ia', uri: 'ub' },
    { _index: 'ib', uri: 'ub' },
], isLoading: false });

더 많은 설명

직면 한 문제

Component Lifecycle-ComponentDidMount는 렌더링이 실행 된 후 또는 동시에 실행됩니다. 이로 인해 매핑하려는 데이터가 아직 사용되지 않는 동시성 문제가 발생했습니다. DidMount 내부에서 맵을 수행하면 데이터가 준비된 후에 만 ​​수행됩니다. 그 동안 렌더링의 {data}는 null이되고 아무것도 표시되지 않습니다. 이것을 테스트하고 싶다면 didmount 안에 슬립 / 블록을 놓고 블록이 완료 될 때까지 데이터가 표시되지 않는 것을 확인할 수 있습니다.

json 객체를 올바르게 탐색-data.hits.map 대신 data.map을 사용하면 실제로 액세스해야하는 특정 목록 "적중"(data.hits)이 아니라 전체 json 객체를 대상으로합니다. 다음으로 .map 함수는 해당 값을 사용할 수 있도록 각 반복에서 'dataSet'을 제공하는 해당 목록을 반복합니다.

잠재적-일반적으로 json 파일에서 데이터를 얻지 못하지만 웹 API에서 데이터를 얻지 못하므로 경험이 거의 없지만 일반적으로 파일에 액세스하려면 특수 라이브러리가 필요하거나 파일을 사용할 수있는 공용 폴더에 넣어야합니다. 프로젝트 전반에 걸쳐. http : // localhost : 3000 / db.json을 수행하여이를 테스트 할 수 있습니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

React Native에서 Flatlist를 사용하여 데이터가 렌더링되지 않습니다.

분류에서Dev

React : 앱이 React.Component에 래핑 될 때 화면에 렌더링되지 않습니다.

분류에서Dev

React.js가 내 Codepen에서 렌더링되지 않습니다.

분류에서Dev

조건부 렌더링에서 React-tooltip이 표시되지 않습니다.

분류에서Dev

React Component가 첫 번째 상태 업데이트에서 다시 렌더링되지 않습니다.

분류에서Dev

React에서 API의 데이터를 렌더링 할 수 없습니다. 오류가 표시되지 않습니다.

분류에서Dev

Firebase의 데이터가 내 FlatList (React Native)에서 렌더링되지 않는 이유는 무엇입니까?

분류에서Dev

React Router V4-페이지가 변경된 경로에서 다시 렌더링되지 않습니다.

분류에서Dev

React-native : 구성 요소가 Android에서 화면 아래의 특정 지점을지나 렌더링되지 않습니다.

분류에서Dev

FlatList가 json 배열 React-native에서 데이터를 렌더링하지 않습니다.

분류에서Dev

React-API 데이터가 구성 요소 (검사 자당)에 성공적으로 전달되지만 렌더링되지 않습니다.

분류에서Dev

React : 내가 돌아 왔는데도 렌더링에서 아무것도 반환되지 않았습니다.

분류에서Dev

React Redux, 첫 페이지로드시에만 API에서 데이터를로드합니다. 데이터가로드되면 구성 요소 렌더링

분류에서Dev

데이터는 하이 차트에서 렌더링되지 않습니다.

분류에서Dev

React : 왜 '이름'변수가 렌더링 안에 표시되지 않습니까?

분류에서Dev

react-bootstrap Navbar가 React js에서 제대로 렌더링되지 않습니다.

분류에서Dev

서클이 React Google Map의 API로 Google지도에서 렌더링되지 않습니다.

분류에서Dev

React 하위 구성 요소가 배열에서 매핑 될 때 다시 렌더링되지 않습니다.

분류에서Dev

react에서 this.setState ({term : ''})를 호출 한 후 입력 값이 다시 렌더링되지 않습니다.

분류에서Dev

큐브가 OpenGL에서 렌더링되지 않습니다.

분류에서Dev

IE에서 글꼴이 렌더링되지 않습니다.

분류에서Dev

입력이보기에서 렌더링되지 않습니다.

분류에서Dev

노드 단계의 가장자리가 react-flow-renderer에서 렌더링되지 않습니다.

분류에서Dev

React Hooks : 구성 요소가 중첩 라우팅에서 렌더링되지 않습니다.

분류에서Dev

react-native에서 데이터가 변경되면 플랫리스트를 다시 렌더링합니다.

분류에서Dev

fullcalendar가 선택되지 않은 jqxtab에서 렌더링되지 않습니다.

분류에서Dev

fullcalendar가 선택되지 않은 jqxtab에서 렌더링되지 않습니다.

분류에서Dev

github 페이지에 배포했을 때 React 앱이 올바르게 렌더링되지 않았습니다.

분류에서Dev

Laravel 7 + React 렌더링 오류 : 렌더링에서 아무것도 반환되지 않았습니다.

Related 관련 기사

  1. 1

    React Native에서 Flatlist를 사용하여 데이터가 렌더링되지 않습니다.

  2. 2

    React : 앱이 React.Component에 래핑 될 때 화면에 렌더링되지 않습니다.

  3. 3

    React.js가 내 Codepen에서 렌더링되지 않습니다.

  4. 4

    조건부 렌더링에서 React-tooltip이 표시되지 않습니다.

  5. 5

    React Component가 첫 번째 상태 업데이트에서 다시 렌더링되지 않습니다.

  6. 6

    React에서 API의 데이터를 렌더링 할 수 없습니다. 오류가 표시되지 않습니다.

  7. 7

    Firebase의 데이터가 내 FlatList (React Native)에서 렌더링되지 않는 이유는 무엇입니까?

  8. 8

    React Router V4-페이지가 변경된 경로에서 다시 렌더링되지 않습니다.

  9. 9

    React-native : 구성 요소가 Android에서 화면 아래의 특정 지점을지나 렌더링되지 않습니다.

  10. 10

    FlatList가 json 배열 React-native에서 데이터를 렌더링하지 않습니다.

  11. 11

    React-API 데이터가 구성 요소 (검사 자당)에 성공적으로 전달되지만 렌더링되지 않습니다.

  12. 12

    React : 내가 돌아 왔는데도 렌더링에서 아무것도 반환되지 않았습니다.

  13. 13

    React Redux, 첫 페이지로드시에만 API에서 데이터를로드합니다. 데이터가로드되면 구성 요소 렌더링

  14. 14

    데이터는 하이 차트에서 렌더링되지 않습니다.

  15. 15

    React : 왜 '이름'변수가 렌더링 안에 표시되지 않습니까?

  16. 16

    react-bootstrap Navbar가 React js에서 제대로 렌더링되지 않습니다.

  17. 17

    서클이 React Google Map의 API로 Google지도에서 렌더링되지 않습니다.

  18. 18

    React 하위 구성 요소가 배열에서 매핑 될 때 다시 렌더링되지 않습니다.

  19. 19

    react에서 this.setState ({term : ''})를 호출 한 후 입력 값이 다시 렌더링되지 않습니다.

  20. 20

    큐브가 OpenGL에서 렌더링되지 않습니다.

  21. 21

    IE에서 글꼴이 렌더링되지 않습니다.

  22. 22

    입력이보기에서 렌더링되지 않습니다.

  23. 23

    노드 단계의 가장자리가 react-flow-renderer에서 렌더링되지 않습니다.

  24. 24

    React Hooks : 구성 요소가 중첩 라우팅에서 렌더링되지 않습니다.

  25. 25

    react-native에서 데이터가 변경되면 플랫리스트를 다시 렌더링합니다.

  26. 26

    fullcalendar가 선택되지 않은 jqxtab에서 렌더링되지 않습니다.

  27. 27

    fullcalendar가 선택되지 않은 jqxtab에서 렌더링되지 않습니다.

  28. 28

    github 페이지에 배포했을 때 React 앱이 올바르게 렌더링되지 않았습니다.

  29. 29

    Laravel 7 + React 렌더링 오류 : 렌더링에서 아무것도 반환되지 않았습니다.

뜨겁다태그

보관