다른 구성 요소에서 구성 요소의 상태를 조작 할 수있는 방법이 있습니까?

라자르시 차크라 바티

4 개의 상호 관련된 구성 요소로 구성된 생태계가 있으며 한 구성 요소의 상태를 다른 구성 요소에서 조작 할 수 있다면 매우 도움이 될 것입니다.

이것은 내 MidSection 구성 요소입니다.

import React, {Component} from 'react';
import {render} from 'react-dom';
import $ from 'jquery';
import List from './List';
import OpenSessionCard from './OpenSessionCard';

class MidSection extends Component {  
  constructor() {
    super(...arguments);
    this.state = {
      cardsToBeDisplayed: this.props.sessionCards,
      cardsFilter: 'All',
      cardExpanded: false,
      cardToBeDisplayed: null
    };
  }

  filterCards() {
    let selectedValue = $('#cards-filter').val();
    if (selectedValue === 'All') {
      this.setState({
        cardsToBeDisplayed: this.props.sessionCards,
        cardsFilter: 'All',
        cardExpanded: false,
        cardToBeDisplayed: null
      });
    } else {
      this.setState({
        cardsToBeDisplayed: this.props.sessionCards.filter((sessionCard) => sessionCard.status === selectedValue),
        cardsFilter: selectedValue,
        cardExpanded: false,
        cardToBeDisplayed: null
      });
    }
  }

  render() {
    let cardList, openSessionCard;

    if (!this.state.cardToBeDisplayed) {
      cardList = (
        <List cards={this.state.cardsToBeDisplayed} filter={this.state.cardsFilter}/>
      );
    } else {
      openSessionCard = (
        <OpenSessionCard card={this.state.cardToBeDisplayed}/>
      );
    };

    return (
      <section className="col-md-8 col-sm-12 col-xs-12 middle-section-container">
          <div className="nav-justified pull-left">
              <div className="gray-background-color col-xs-12 form-control-static">
                  <div className="col-xs-6">
                      <label className="control-label green-color" htmlFor="inputError1">MY SESSIONS</label>
                  </div>
                  <div className="col-xs-2 col-xs-offset-4 text-right">
                      <select id="cards-filter" className="form-control" onChange={this.filterCards.bind(this)}>
                        <option>All</option>
                        <option>Open</option>
                        <option>Scheduled</option>
                        <option>Completed</option>
                        <option>Closed</option>
                      </select>
                  </div>
              </div>
              {cardList}
              {openSessionCard}
          </div>
      </section>
    );
  }

  componentDidMount() {
    $('#mid-section').attr('data-rendered', 'true');
  }
}

export default MidSection;

그리고 이것은 내 SessionCard 구성 요소입니다.

import React, {Component} from 'react';
import {render} from 'react-dom';
import $ from 'jquery';
import MidSection from './MidSection';

class SessionCard extends Component {
  openCard() {
    /*************
    MidSection.setState({
      cardsToBeDisplayed: null,
      cardsFilter: null,
      cardExpanded: true,
      cardToBeDisplayed: this
    });
    **************/
    $('#cards-filter').attr('disabled', 'disabled');
  }

  render() {
    return (
      <div className="card" onClick={this.openCard.bind(this)}>
        <div className="card__title green-color">{this.props.name}</div>
        <div className="card__details">
          <span>Facilitator: {this.props.facilitator}</span><br/>
          <span>Mode: {this.props.mode}</span><br/>
          <span>Status: {this.props.status}</span><br/>
        </div>
      </div>
    );
  }
}

export default SessionCard;

SessionCard 구성 요소의 openCard () 함수가 MidSection 구성 요소의 setState () 함수를 호출하기를 원합니다. 이것을 달성 할 수있는 방법이 있습니까? SessionCard 구성 요소에서 MidSection 구성 요소 (현재 상태 포함)를 어떻게 참조합니까?

erichardson30

기본 (상위) 구성 요소에서만 상태를 설정해야합니다. 모든 하위 구성 요소는 "멍청한"구성 요소 여야합니다. 다음과 같이 SessionCard의 소품으로 호출하려는 함수를 전달하십시오.

<OpenSessionCard card={this.state.cardToBeDisplayed} setStateFunc={this.setStateFunc}/>

그런 다음 openCard () 함수 호출에서 :

this.props.setStateFunc();

그러면 부모 구성 요소의 함수가 호출되고 거기에서 상태를 조작 할 수 있습니다.

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

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

분류에서Dev

최고의 Dirichlet 구성 요소 이외의 다른 구성 요소를 검색 할 수 있습니까?

분류에서Dev

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

분류에서Dev

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

분류에서Dev

내가 작성한 사용자 지정 양식 인 자식 구성 요소에서 부모 구성 요소의 상태를 수정하는 방법. 이것은 또한 부모의 다른 자녀에게 영향을 미칠 수 있습니다.

분류에서Dev

다른 구성 요소의 FileId를 참조하는 WiX 설치 관리자에 ServiceInstall 구성 요소를 추가 할 수 있습니까?

분류에서Dev

history.push를 사용할 때 한 구성 요소에서 다른 구성 요소로 상태 변수를 가져 오는 방법은 무엇입니까?

분류에서Dev

다른 구성 요소에서 구성 요소 상태를 변경하는 방법은 무엇입니까?

분류에서Dev

React Native에서 한 함수 구성 요소의 상태를 다른 함수 구성 요소에서 변경하는 방법은 무엇입니까?

분류에서Dev

vue의 한 구성 요소에서 다른 구성 요소로 메서드를 호출하는 쉬운 방법이 있습니까?

분류에서Dev

콜백 함수 내에서 구성 요소의 상태를 업데이트 할 수 없습니다.

분류에서Dev

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

분류에서Dev

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

분류에서Dev

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

분류에서Dev

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

분류에서Dev

한 구성 요소에서 다른 구성 요소로 상태를 전달하는 방법과 상태를 수정하려면 어떻게해야합니까?

분류에서Dev

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

분류에서Dev

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

분류에서Dev

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

분류에서Dev

한 구성 요소에 다른 파일의 다른 구성 요소로 상태를 전달하는 방법

분류에서Dev

Purescript Halogen : 부모이기도 한 자식 구성 요소의 상태를 요청할 수 있습니까?

분류에서Dev

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

분류에서Dev

Reactjs의 다른 구성 요소에서 상태를 트리거하는 방법

분류에서Dev

다른 구성 요소에서 한 구성 요소의 상태를 사용하는 방법? 독립 구성 요소 (React)

분류에서Dev

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

분류에서Dev

다른 구성 요소에서 렌더링 할 소품이있는 구성 요소 전달

분류에서Dev

ReactNative-경고 : 다른 구성 요소의 함수 본문 내부에서 구성 요소를 업데이트 할 수 없습니다.

분류에서Dev

기능 구성 요소에서 상태를 설정할 수 없습니다.

분류에서Dev

구성 요소에서 상태를 설정할 수 없습니다.

Related 관련 기사

  1. 1

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

  2. 2

    최고의 Dirichlet 구성 요소 이외의 다른 구성 요소를 검색 할 수 있습니까?

  3. 3

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

  4. 4

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

  5. 5

    내가 작성한 사용자 지정 양식 인 자식 구성 요소에서 부모 구성 요소의 상태를 수정하는 방법. 이것은 또한 부모의 다른 자녀에게 영향을 미칠 수 있습니다.

  6. 6

    다른 구성 요소의 FileId를 참조하는 WiX 설치 관리자에 ServiceInstall 구성 요소를 추가 할 수 있습니까?

  7. 7

    history.push를 사용할 때 한 구성 요소에서 다른 구성 요소로 상태 변수를 가져 오는 방법은 무엇입니까?

  8. 8

    다른 구성 요소에서 구성 요소 상태를 변경하는 방법은 무엇입니까?

  9. 9

    React Native에서 한 함수 구성 요소의 상태를 다른 함수 구성 요소에서 변경하는 방법은 무엇입니까?

  10. 10

    vue의 한 구성 요소에서 다른 구성 요소로 메서드를 호출하는 쉬운 방법이 있습니까?

  11. 11

    콜백 함수 내에서 구성 요소의 상태를 업데이트 할 수 없습니다.

  12. 12

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

  13. 13

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

  14. 14

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

  15. 15

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

  16. 16

    한 구성 요소에서 다른 구성 요소로 상태를 전달하는 방법과 상태를 수정하려면 어떻게해야합니까?

  17. 17

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

  18. 18

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

  19. 19

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

  20. 20

    한 구성 요소에 다른 파일의 다른 구성 요소로 상태를 전달하는 방법

  21. 21

    Purescript Halogen : 부모이기도 한 자식 구성 요소의 상태를 요청할 수 있습니까?

  22. 22

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

  23. 23

    Reactjs의 다른 구성 요소에서 상태를 트리거하는 방법

  24. 24

    다른 구성 요소에서 한 구성 요소의 상태를 사용하는 방법? 독립 구성 요소 (React)

  25. 25

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

  26. 26

    다른 구성 요소에서 렌더링 할 소품이있는 구성 요소 전달

  27. 27

    ReactNative-경고 : 다른 구성 요소의 함수 본문 내부에서 구성 요소를 업데이트 할 수 없습니다.

  28. 28

    기능 구성 요소에서 상태를 설정할 수 없습니다.

  29. 29

    구성 요소에서 상태를 설정할 수 없습니다.

뜨겁다태그

보관