ReactJ를 사용하여 부모에서 자식 요소로 클릭 된 ID 가져 오기

솔 리브

나는 ReactJs에서 응용 프로그램을 개발하고 있어요 지금은에서 클릭 된 ID 전달해야 Main.js의 페이지를 Sofa.js 그냥 클릭하는 ID에 따라 다른 정보를 표시하는 것이다. 내 밍은 모두 PHP로 포맷되어 있으며 ReactJs에 $ _GET ahah와 같은 전역 변수가 있기를 바랍니다. 아마도 그럴 수도 있습니다. 지금은 안됩니다. 나는 수색을했지만 내가 찾고있는 것을 찾지 못했다. 아래 코드를 보여 드리겠습니다.
가져 오기가 포함되지 않은 Main.js 코드 :

export class Main extends React.Component {

    constructor(props) {
        super(props);
        this.state = {
            token: {},
            isLoaded: false,
            models: [],
            offset: offset,
            limit: limit
        };
    }

    componentDidMount() {

        /* Some code not relevant to the question, for getting API token */

        fetch('url/couch-model?offset=' + offset + '&limit=' + limit, {
            method: 'GET',
            headers: {
                'Content-Type': 'application/json',
                'Accept': 'application/json',
                'Authorization': 'JWT ' + (JSON.parse(localStorage.getItem('token')).token)
            }
        }).then(res => {
            if (res.ok) {
                return res.json();
            } else {
                throw Error(res.statusText);
            }
        }).then(json => {
            this.setState({
                models: json.results,
                isLoaded: true
            }, () => { });
        })    
    }

    render() {

        const { isLoaded, models } = this.state;

        if (!isLoaded) {

            return (
                <div id="LoadText">
                    Loading...
                </div>
            )

        } else {

            return (
                <div>

                    {models.map(model =>
                        <a href={"/sofa?id=" + model.id} key={model.id}>
                            <div className="Parcelas">
                                <img src={"url" + model.image} className="ParcImage" alt="sofa" />
                                <h1>{model.name}</h1>

                                <p className="Features">{model.brand.name}</p>

                                <button className="Botao">
                                    <p className="MostraDepois">Ver Detalhes</p>
                                    <span>+</span>
                                </button>
                                <img src="../../img/points.svg" className="Decoration" alt="points" />
                            </div>
                        </a>
                    )}

                    <PageButtons offset={offset} />

                </div>
            )
        }
    }
}

보시다시피 <a>두 번째 반환은 올바른 방법인지 확실하지 않지만 ID를 보냅니다. 내가 쓰려고 시도한 것은 route-js와 같은 경로 /sofa/:id이지만 어쨌든 / sofa / 1 내부의 CSS는 ID가 무엇이든 작동을 멈췄습니다.

이제 Sofa.js 코드, 가져 오기 없음 및 관련 코드 만 :

export class Sofa extends React.Component {

    constructor(props) {
        super(props);
        this.state = {
            token: {},
            isLoaded: false,
            model: {}
        };
    }

    componentDidMount() {

        fetch(url + '/couch-model/1{/*this show be id clicked and sent by url*/}/', {
            method: 'GET',
            headers: {
                'Content-Type': 'application/json',
                'Accept': 'application/json',
                'Authorization': 'JWT ' + (JSON.parse(localStorage.getItem('token')).token)
            }
        }).then(res => {
            if (res.ok) {
                return res.json();
            } else {
                throw Error(res.statusText);
            }
        }).then(json => {
            this.setState({
                model: json,
                isLoaded: true
            }, () => {});
        })
    }

    render() {

        const { model, isLoaded } = this.state;

        if (!isLoaded) {

            return (
                <div id="LoadText">
                    Estamos a preparar o seu sofá!
                </div>
            )

        } else {

            return (
                <div id="Esquerda">    
                    <h2>{model.area_set.map(area => area.name)}</h2>    
                    <h1>{model.name}</h1>
                    <p>Highly durable full-grain leather which is soft and has  a natural look and feel.</p>    
                    <h3>Design</h3>
                    <h4>Hexagon</h4>
                </div>
            );

        }

    }

}

또한 여기 route.js가 있습니다.

const Routes = (props) => (
    <BrowserRouter>
        <Switch>
            <Route path='/sofa/:id' component={Sofa}/>
            <Route path='/home' component={Home}/>
            <Route path='*' component={NotFound}/>            
        </Switch>
    </BrowserRouter>
);

export default Routes;
주앙 쿠냐

나는 당신이 (예제에서 볼 수있는) react-router를 사용하지 않는 것을 봅니다.

이런 상황을 아주 쉽게 만들 수 있기 때문에 사용하는 것이 좋습니다.

에서처럼

const ParamsExample = () => (
  <Router>
    <div>
      <h2>Accounts</h2>
      <ul>
        <li>
          <Link to="/netflix">Netflix</Link>
        </li>
        <li>
          <Link to="/zillow-group">Zillow Group</Link>
        </li>
        <li>
          <Link to="/yahoo">Yahoo</Link>
        </li>
        <li>
          <Link to="/modus-create">Modus Create</Link>
        </li>
      </ul>

      <Route path="/:id" component={Child} />
    </div>
  </Router>
);

그리고 Child 컴포넌트는 경로에 의해 주입 된 일치를 가지고 있습니다.

const Child = ({ match }) => (
  <div>
    <h3>ID: {match.params.id}</h3>
  </div>
);

다음은 함께 놀 수있는 CodeSandbox입니다.

귀하의 경우 소파하위 구성 요소입니다. URL에서받은 ID로 componentDidMount에서 원하는 API를 호출 할 수 있습니다.

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Javascript를 사용하여 클릭된 요소에서 속성 가져오기

부모 구성 요소를 클릭하면 자식 구성 요소에서 데이터 가져 오기

SQL Server를 사용하여 부모의 ID에서 중첩된 자식 가져오기

Jquery를 사용하여 클래스 이름만으로 기사에서 첫 번째 자식 ID 가져 오기

jQuery는 클릭 된 요소를 부모로 가져오고 그 자식을 얻습니다.

요소 jQuery를 클릭하면 부모 양식 클래스 가져 오기

자식 구성 요소를 클릭하면 부모 구성 요소 속성 가져 오기

동적으로 생성 된 요소에서 일반 JavaScript를 사용하여 이벤트 리스너를 추가하고 클릭시 값 가져 오기

Golang을 사용하여 자식 프로세스 ID에서 부모 프로세스 ID 가져 오기

자바 스크립트를 사용하여 동적으로 생성 된 HTML 요소의 ID에 액세스하는 동안 null 가져 오기

문자열로 구분 된 구성 요소를 사용하여 URL에서 값 가져 오기

JAVA에서 DOM 파서를 사용하여 ID로 요소 가져 오기

jQuery를 사용하여 모달 상자의 버튼 클릭시 테이블 행 ID 가져 오기

jQuery는 내부에 클릭 된 요소를 기반으로 <li>의 ID를 가져옵니다.

어떻게 부모 요소와 그 후는 셀레늄과 액션 클래스를 사용하여 자식 요소를 클릭 가져가 마우스로

C #을 사용하여 다단계 포함 된 MongoDB 문서에서만 해당 부모가있는 정확한 자식 요소를 가져 오는 방법

CKEDITOR-요소를 클릭하면 부모로부터 속성 가져 오기

엄격한 유형을 사용하여 클릭된 요소의 ID 가져오기

자식 요소를 클릭하면 맨 위로 스크롤 할 요소 가져 오기

AngularJS에서 현재 클릭 된 요소의 부모 요소의 ID를 가져옵니다.

부모 클래스에서 JavaScript를 사용하여 자식 입력 값 가져오기

렌더링 된 목록에서 클릭 한 요소의 ID 가져 오기

$(this)를 사용하여 div 내부에 자식 img 가져오기; [클릭 시 이벤트]

jquery를 사용하여 중첩 된 HTML 요소에서 div의 ID 가져 오기

jquery를 사용하여 외부 iframe에서 클릭 된 링크의 콘텐츠 가져 오기

자식이 새로 생성 된 요소를 클릭했을 때 부모 요소의 ID를 얻는 방법

꼭두각시를 사용하여 사용자 지정 요소 가져 오기 및 클릭 동작 수행

React를 사용하여 <ul> <li> 부모 내에서 <li> 항목을 자식으로 클릭하십시오.

JQuery를 사용하여 ID가 배열로있는 양식에서만 숫자 값을 가져 오나요?

TOP 리스트

  1. 1

    JNDI를 사용하여 Spring Boot에서 다중 데이터 소스 구성

  2. 2

    std :: regex의 일관성없는 동작

  3. 3

    JSoup javax.net.ssl.SSLHandshakeException : <url>과 일치하는 주체 대체 DNS 이름이 없습니다.

  4. 4

    PrematureCloseException : 연결이 너무 일찍 닫혔습니다.

  5. 5

    Xcode10 유효성 검사 : 이미지에 투명성이 없지만 여전히 수락되지 않습니까?

  6. 6

    정점 셰이더에서 카메라에서 개체까지의 XY 거리

  7. 7

    Ionic 2 로더가 적시에 표시되지 않음

  8. 8

    Seaborn에서 축 제목 숨기기

  9. 9

    C #에서 'System.DBNull'형식의 개체를 'System.String'형식으로 캐스팅 할 수 없습니다.

  10. 10

    복사 / 붙여 넣기 비활성화

  11. 11

    ArrayBufferLike의 typescript 정의의 깊은 의미

  12. 12

    Google Play Console에서 '예기치 않은 오류가 발생했습니다. 나중에 다시 시도해주세요. (7100000)'오류를 수정하는 방법은 무엇입니까?

  13. 13

    Kubernetes Horizontal Pod Autoscaler (HPA) 테스트

  14. 14

    jfreecharts에서 x 및 y 축 선을 조정하는 방법

  15. 15

    PRNG 기간보다 순열이 더 많은 목록을 무작위로 섞는 방법은 무엇입니까?

  16. 16

    C # HttpWebRequest 기본 연결이 닫혔습니다. 전송시 예기치 않은 오류가 발생했습니다.

  17. 17

    다음 컨트롤이 추가되었지만 사용할 수 없습니다.

  18. 18

    잘못된 구성 개체입니다. Webpack이 Angular의 API 스키마와 일치하지 않는 구성 개체를 사용하여 초기화되었습니다.

  19. 19

    Android Kotlin은 다른 활동에서 함수를 호출합니다.

  20. 20

    R의 마침표와 숫자 사이에 문자열 삽입

  21. 21

    Assets의 BitmapFactory.decodeStream이 Android 7에서 null을 반환합니다.

뜨겁다태그

보관