여러 다른 구성 요소에서 단일 React 구성 요소를 어떻게 업데이트 할 수 있습니까?

완전한

저는 React를 배우고 있으며 여전히 몇 가지를 계획하고 구현하는 방법을 알아 내려고 노력하고 있습니다. 세 가지 다른 API 호출을 수행하는 앱이 있으므로 세 가지 다른 반환 값이 있습니다. 세 가지 모두로드되었는지 여부를 알려주는 전역 상태 구성 요소를 갖고 싶습니다. 아직 적절한 방법을 찾지 못했기 때문에 여기에 내 가짜 코드가 있습니다. 그러나 이것은 현재 제 생각의 기차입니다. 주요 앱이 있습니다.

const App = () => {
    return (
      <div>
        <GenericAPICallerA />
        <GenericAPICallerB />
        <GenericAPICallerC />
        <div>
            <APIStatus/>
        </div>
      </div>      
    );
}

이것은 모든 A, B, C API 호출이로드되었는지 여부를 반환하는 APIStatus입니다.

class APIStatus extends React.Component{
    constructor(props){
        super(props);
        this.state = {
            aLoaded: false,
            bLoaded: false,
            cLoaded: false,
            
        };
    }

    render(){
        if (this.state.aLoaded && this.state.bLoaded && this.state.cLoaded){
            return <div>Everything has loaded!</div>
        }
        else{
            return <div>Nothing has loaded!</div>
        }

        
    }

}

마지막으로 APICaller 구성 요소 중 하나입니다. 나머지는 본질적으로 동일합니다.


class GenericAPICallerA extends React.Component{
    constructor(props){
        super(props);
        this.state = {
            error: null,
            isLoaded: false,
        };
    }
    componentDidMount(){
        fetch("example.com/api",{
            method: 'GET',
        })
        .then(res => res.json())
        .then(
            (result) =>{
                this.setState({
                    isLoaded: true,
                });
            },
            (error) =>{
                this.setState({
                    isLoaded: false,
                    error
                });
            }
        )
    }
    render(){
        const { error, isLoaded, profile } = this.state;
        if (error){
            return <div>Errored!</div>
        } else if (!isLoaded){
            // APIStatus.state.aLoaded=false
        } else {
            // APIStatus.state.aLoaded=true
            return(
                <div>Generic Caller A is done!</div>
            );
        }
    }
}

렌더링 섹션의 주석은 어떻게해야할지 모르겠습니다. GenericAPICaller에 대한 소품으로 APIStatus를 전달해야한다고 생각하지만 GenericAPICaller 내부에서 해당 속성을 어떻게 업데이트할지 여전히 잘 모르겠습니다.

감사!

웰링턴 쿠냐

부모 구성 요소에서 함수를 만들고 자식에게 전달할 수 있습니다. 트리거되고 상태 변수가 사용될 자식에게 전달됩니다.

예를 들면 :

import React from 'react'
import ComponentA from './ComponentA'
import ComponentB from './ComponentB'

class App extends React.Component
{
    constructor()
    {
       super()
       this.state = { my_state_variable:`some value` }
    }

    my_function()
    {
        this.setState({ my_state_variable:`new value` })
    }

    render = () => <>
        <ComponentA my_function={my_function} />
        <ComponentB my_state_variable={my_state_variable} />
    </>

}

export default App

화합물

import React from 'react'

const ComponentA = ({ my_function }) => <>
   <button onClick={() => my_function() }>Click Me </button>
</>

export default ComponentA

ComponentB

import React from 'react'

const ComponentB = ({ my_state_variable }) => <>
   <p>{my_state_variable}</p>
   {my_state_variable === `some value` && <p>if some value this will render </p>}
   {my_state_variable === `new value` && <p>if new value this will render </p>}
</>

export default ComponentA

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

React-다른 js 파일의 한 구성 요소에서 다른 구성 요소로 API 데이터를 어떻게 전달할 수 있습니까?

분류에서Dev

React에서 다른 구성 요소의 인증 상태를 어떻게 동기화 할 수 있습니까?

분류에서Dev

React에서 구성 요소를 업데이트 할 수 없습니다.

분류에서Dev

Angular 8에서 다른 구성 요소로 이동 한 후 구성 요소의 상태를 어떻게 저장할 수 있습니까?

분류에서Dev

이 반응 구성 요소를 어떻게 단순화 할 수 있습니까?

분류에서Dev

React Native는 다른 구성 요소의 함수 본문 내부에서 구성 요소를 업데이트 할 수 없습니다.

분류에서Dev

React Native는 다른 구성 요소의 함수 본문 내부에서 구성 요소를 업데이트 할 수 없습니다.

분류에서Dev

부모 구성 요소가 업데이트 될 때마다 자식 구성 요소를 어떻게 렌더링 할 수 있습니까?

분류에서Dev

JavaFX의 다른 컨트롤러에서 (panel, anchorpane)과 같은 구성 요소를 어떻게 사용할 수 있습니까?

분류에서Dev

블레이드 구성 요소에 여러 단어 변수를 전달할 수 있습니까?

분류에서Dev

React Native의 여러 구성 요소에서 액세스 할 수있는 단일 모달 구성 요소를 설계하는 방법은 무엇입니까?

분류에서Dev

"경고 : 마운트 해제 된 구성 요소에서 React 상태 업데이트를 수행 할 수 없습니다."라는 경고를 어떻게 해결할 수 있습니까? setInterval 함수에서?

분류에서Dev

React의 형제 구성 요소간에 데이터를 어떻게 전달할 수 있습니까?

분류에서Dev

중첩 파일 업로드 React 구성 요소에서 부모 구성 요소로 데이터를 전달할 수 없습니다.

분류에서Dev

React의 다른 구성 요소에서 변수를 어떻게 읽을 수 있습니까?

분류에서Dev

마운트 해제 된 구성 요소에서 React 상태 업데이트를 수행 할 수 없습니다.

분류에서Dev

경고 : 마운트 해제 된 구성 요소에서는 React 상태 업데이트를 수행 할 수 없습니다. 기능적 구성 요소

분류에서Dev

여러 구성 요소에서 상태를 어떻게 사용할 수 있습니까?

분류에서Dev

React에서 한 구성 요소에서 다른 구성 요소로 메서드를 이동하고 원본에서 계속 사용할 수 있습니다.

분류에서Dev

수명이 다른 여러 str 변수로 구조체를 어떻게 구성 할 수 있습니까?

분류에서Dev

AnyLogic 분할 구성 요소에서 단일 에이전트를 여러 에이전트로 분할 할 수 있습니까?

분류에서Dev

PortalVue를 여러 Vue.js 단일 파일 구성 요소에서 사용할 수 있습니까?

분류에서Dev

Angular2에서 각 구성 요소에 다른 데이터 서비스를 어떻게 주입 할 수 있습니까?

분류에서Dev

fetch POST 메서드를 사용하여 마운트되지 않은 구성 요소에서 React 상태 업데이트를 수행 할 수 없습니다.

분류에서Dev

스타일 구성 요소 css ''에서 애니메이션을 어떻게 사용할 수 있습니까?

분류에서Dev

React를 사용하여 다른 값으로 여러 요소를 어떻게 업데이트 할 수 있습니까?

분류에서Dev

경고 : 다른 구성 요소의 함수 본문 내부에서 구성 요소를 업데이트 할 수 없습니다. (리 액트 네이티브)

분류에서Dev

react.js 구성 요소에서 Bootstrap 5 Popover를 어떻게 사용할 수 있습니까?

분류에서Dev

eventHandler에서 React의 특정 구성 요소를 어떻게 변경할 수 있습니까?

Related 관련 기사

  1. 1

    React-다른 js 파일의 한 구성 요소에서 다른 구성 요소로 API 데이터를 어떻게 전달할 수 있습니까?

  2. 2

    React에서 다른 구성 요소의 인증 상태를 어떻게 동기화 할 수 있습니까?

  3. 3

    React에서 구성 요소를 업데이트 할 수 없습니다.

  4. 4

    Angular 8에서 다른 구성 요소로 이동 한 후 구성 요소의 상태를 어떻게 저장할 수 있습니까?

  5. 5

    이 반응 구성 요소를 어떻게 단순화 할 수 있습니까?

  6. 6

    React Native는 다른 구성 요소의 함수 본문 내부에서 구성 요소를 업데이트 할 수 없습니다.

  7. 7

    React Native는 다른 구성 요소의 함수 본문 내부에서 구성 요소를 업데이트 할 수 없습니다.

  8. 8

    부모 구성 요소가 업데이트 될 때마다 자식 구성 요소를 어떻게 렌더링 할 수 있습니까?

  9. 9

    JavaFX의 다른 컨트롤러에서 (panel, anchorpane)과 같은 구성 요소를 어떻게 사용할 수 있습니까?

  10. 10

    블레이드 구성 요소에 여러 단어 변수를 전달할 수 있습니까?

  11. 11

    React Native의 여러 구성 요소에서 액세스 할 수있는 단일 모달 구성 요소를 설계하는 방법은 무엇입니까?

  12. 12

    "경고 : 마운트 해제 된 구성 요소에서 React 상태 업데이트를 수행 할 수 없습니다."라는 경고를 어떻게 해결할 수 있습니까? setInterval 함수에서?

  13. 13

    React의 형제 구성 요소간에 데이터를 어떻게 전달할 수 있습니까?

  14. 14

    중첩 파일 업로드 React 구성 요소에서 부모 구성 요소로 데이터를 전달할 수 없습니다.

  15. 15

    React의 다른 구성 요소에서 변수를 어떻게 읽을 수 있습니까?

  16. 16

    마운트 해제 된 구성 요소에서 React 상태 업데이트를 수행 할 수 없습니다.

  17. 17

    경고 : 마운트 해제 된 구성 요소에서는 React 상태 업데이트를 수행 할 수 없습니다. 기능적 구성 요소

  18. 18

    여러 구성 요소에서 상태를 어떻게 사용할 수 있습니까?

  19. 19

    React에서 한 구성 요소에서 다른 구성 요소로 메서드를 이동하고 원본에서 계속 사용할 수 있습니다.

  20. 20

    수명이 다른 여러 str 변수로 구조체를 어떻게 구성 할 수 있습니까?

  21. 21

    AnyLogic 분할 구성 요소에서 단일 에이전트를 여러 에이전트로 분할 할 수 있습니까?

  22. 22

    PortalVue를 여러 Vue.js 단일 파일 구성 요소에서 사용할 수 있습니까?

  23. 23

    Angular2에서 각 구성 요소에 다른 데이터 서비스를 어떻게 주입 할 수 있습니까?

  24. 24

    fetch POST 메서드를 사용하여 마운트되지 않은 구성 요소에서 React 상태 업데이트를 수행 할 수 없습니다.

  25. 25

    스타일 구성 요소 css ''에서 애니메이션을 어떻게 사용할 수 있습니까?

  26. 26

    React를 사용하여 다른 값으로 여러 요소를 어떻게 업데이트 할 수 있습니까?

  27. 27

    경고 : 다른 구성 요소의 함수 본문 내부에서 구성 요소를 업데이트 할 수 없습니다. (리 액트 네이티브)

  28. 28

    react.js 구성 요소에서 Bootstrap 5 Popover를 어떻게 사용할 수 있습니까?

  29. 29

    eventHandler에서 React의 특정 구성 요소를 어떻게 변경할 수 있습니까?

뜨겁다태그

보관