하위 구성 요소의 각 인스턴스에 대해 두 가지 다른 데이터 목록을 전달합니까?

멍청한 놈

저는 ReactJS를 처음 사용하고 react-search npm 패키지를 사용하고 있습니다 : https://www.npmjs.com/package/react-search

음식을 주문하기 위해 렌더링되는 페이지가 있습니다. 두 가지 반응 검색 구성 요소가 있습니다. 하나는 오늘 받고 싶은 음식에 해당하고 다른 하나는 '나중에'에 해당합니다. 따라서 동일한 음식 목록을 reactSearch의 두 인스턴스에 전달합니다.

<label> Add for now: </label>
<ReactSearch list={foods} updateFoods={this.updateNowOrders}></ReactSearch>
<label> Add for later: </label>
<ReactSearch list={foods} updateFoods={this.updateLaterOrders}></ReactSearch>

ReactSearch 코드는 다음과 같습니다.

import Search from 'react-search'
import ReactDOM from 'react-dom'
import React, { Component, PropTypes } from 'react'

export default class ReactSearch extends Component {

    update(foods) {
        this.props.updateNowOrders(foods);
        this.props.updateLaterOrders(foods);      
    }

    render () {

        var foods = this.props.list;

        return (
        <div>

            <Search foods={foods}
                    placeholder='Search foods'
                    maxSelected={}
                    multiple={true}
                    onItemsChanged={this.update.bind(this)} />
        </div>
        )
    }
}

여기서는 각 구성 요소에 대한 새로운 음식 목록 (선택된 음식)을 주문 생성 구성 요소로 다시 전달하려고합니다.

이제 여기서 첫 번째 문제는 TyperError 가 발생한다는 것입니다 . this.props.updateNowOrders 는 나중에 일부 주문을 선택하려고 할 때 함수가 아닙니다. 나는 이것이 나쁜 디자인이라는 것에 감사합니다. 나는 e instanceof TypeError로 try & catch 블록을 통해 두 개를 분리하려고 시도했지만 작동하지 않습니다.

내가 얻는 두 번째 TypeError는 주문 구성 요소 내에 있습니다. 주문해야하는 음식 목록이 다시 전달되면 TypeError : Cannot set property 'selectedForNow'of undefined. 두 함수의 구현은 주문 구성 요소에서 다음과 같습니다.

constructor(props, context) {
    super(props, context);

    this.state = {
        foods: [],
        selectedForNow: [],
        selectedForLater: []
    };

};

updateSelectedForNow(data) {         
    this.setState.selectedForNow = data;
}

updateSelectedForLater(data) {     
    this.setState.selectedForLater = data;    
}

어떤 아이디어?

미리 감사드립니다 :)

세자르 랜 데사

TyperError : this.props.updateNowOrders

이는 속성이 호출되지 않았기 때문에 발생 updateNowOrders하지만 updateFoods, 아마도 동일한 이름을 사용해야합니다 updateOrders. 예를 들면 다음과 같습니다.

<label> Add for now: </label>
<ReactSearch list={foods} updateOrders={this.updateNowOrders}></ReactSearch>
<label> Add for later: </label>
<ReactSearch list={foods} updateOrders={this.updateLaterOrders}></ReactSearch>

TypeError : 정의되지 않은 'selectedForNow'속성을 설정할 수 없습니다.

여기에서 setState에 대해 읽을 수 있습니다 . 다음과 같이 사용해야하는 방법입니다.

updateSelectedForNow(data) {         
      this.setState({selectedForNow: data});
}

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

각 목록의 공통 요소와 다른 요소에 대해 쉼표로 구분 된 두 목록을 비교합니다.

분류에서Dev

인스턴스 목록을 데이터 프레임에 배치하지만 하나의 속성이 다른 사전 목록입니다.

분류에서Dev

데이터 소스를 결합하기 위해 한 목록을 다른 목록에 추가

분류에서Dev

두 번째 요소 (벡터화 구현)에서 시작하는 모든 요소에 대해 행 벡터의 각 요소 (이전 및 다음 요소)의 평균을 계산합니다.

분류에서Dev

각 행에 대해 두 가지 가능성이있는 각 열로 2D 파이썬 목록을 생성해야합니다.

분류에서Dev

gridView 목록 모델의 각 요소에 대해 다른 페이지로 라우팅하려면 어떻게해야합니까?

분류에서Dev

반환 된 각 요소에 대해 두 개의 다른 API 끝점에서 데이터를 병합하는 방법은 무엇입니까?

분류에서Dev

각 항목이 다른 열의 요소 목록 인 열을 생성하는 방법은 무엇입니까?

분류에서Dev

React는 두 개의 다른 아이콘에 대해 하나의 스타일 구성 요소를 생성합니까?

분류에서Dev

Vue.js 3-Vue 구성 요소간에 데이터를 전달하고 두 뷰가 모두 업데이트되도록하려면 어떻게해야합니까?

분류에서Dev

각기 다른 데이터를 가질 수 있지만 동일한 테이블 구성 요소 만 사용하도록 Angular 2 테이블 구성 요소에서 데이터를 공유하는 방법은 무엇입니까?

분류에서Dev

언 바운드의 다른 인터페이스에 대해 다른 구성을 지정할 수 있습니까?

분류에서Dev

열의 각 요소에 대해 다른 데이터 프레임의 일치하는 열을 기반으로 Pandas 데이터 프레임의 하위 집합 / 조각을 반환합니까?

분류에서Dev

Mithril-하위 구성 요소가 상위 구성 요소 데이터를 수정 한 후 하위 구성 요소의 배열을 다시 정렬합니다.

분류에서Dev

해시 맵이 있으면 배열의 각 문자열 인스턴스에 대해 1을 추가합니다.

분류에서Dev

드래그 가능한 각 요소에 대해 droppable의 다른 속성을 구현하는 방법은 무엇입니까?

분류에서Dev

각도에 다른 구성 요소를 추가하는 방법 및 이전 구성 요소와 동일한 데이터 및 추가 정보가 있습니다.

분류에서Dev

React의 한 자식 구성 요소에서 다른 자식 구성 요소로 데이터 값을 전달하는 방법은 무엇입니까?

분류에서Dev

상위 속성의 쓰기 가능이 false 인 동안 하위 인스턴스에 대해 동일한 이름의 속성을 만듭니다.

분류에서Dev

두 가지 다른 구성 요소의 텍스트 위치를 정렬하는 방법은 무엇입니까?

분류에서Dev

Angular 2의 데이터 업데이트에 대해 하위 구성 요소에 알립니다.

분류에서Dev

두 테이블을 조인하되 각 고유 레코드의 첫 번째 인스턴스에 첫 번째 테이블의 데이터 만 포함합니다.

분류에서Dev

각도 2 서비스에서 데이터를 조작해도 두 번째 구성 요소에서 변경되지 않습니다.

분류에서Dev

일대 다 구성에서 공통 필드 데이터 포인트를 기반으로 두 목록을 필터링하는 가장 빠른 방법

분류에서Dev

두 목록 집합에서 임의의 항목을 선택한 다음 모든 가능성으로 구성된 다른 목록에서 해당 항목 집합을 제거하려면 어떻게해야합니까?

분류에서Dev

모델의 각 인스턴스에는 다른 모델의 인스턴스가 하나 이상 있습니다.

분류에서Dev

전달 된 인스턴스가 소유 한 목록에 객체를 추가하는 다른 생성자에 클래스의 인스턴스를 전달합니다.

분류에서Dev

하나의 Postgres 인스턴스에서 전체 데이터베이스를 복제하여 다른 인스턴스에서 호스팅되는 데이터베이스의 일부가 되려면 어떻게해야합니까?

분류에서Dev

VueJS는 속성 값을 통해 하위 구성 요소에 사용자 정의 속성을 전달합니다.

Related 관련 기사

  1. 1

    각 목록의 공통 요소와 다른 요소에 대해 쉼표로 구분 된 두 목록을 비교합니다.

  2. 2

    인스턴스 목록을 데이터 프레임에 배치하지만 하나의 속성이 다른 사전 목록입니다.

  3. 3

    데이터 소스를 결합하기 위해 한 목록을 다른 목록에 추가

  4. 4

    두 번째 요소 (벡터화 구현)에서 시작하는 모든 요소에 대해 행 벡터의 각 요소 (이전 및 다음 요소)의 평균을 계산합니다.

  5. 5

    각 행에 대해 두 가지 가능성이있는 각 열로 2D 파이썬 목록을 생성해야합니다.

  6. 6

    gridView 목록 모델의 각 요소에 대해 다른 페이지로 라우팅하려면 어떻게해야합니까?

  7. 7

    반환 된 각 요소에 대해 두 개의 다른 API 끝점에서 데이터를 병합하는 방법은 무엇입니까?

  8. 8

    각 항목이 다른 열의 요소 목록 인 열을 생성하는 방법은 무엇입니까?

  9. 9

    React는 두 개의 다른 아이콘에 대해 하나의 스타일 구성 요소를 생성합니까?

  10. 10

    Vue.js 3-Vue 구성 요소간에 데이터를 전달하고 두 뷰가 모두 업데이트되도록하려면 어떻게해야합니까?

  11. 11

    각기 다른 데이터를 가질 수 있지만 동일한 테이블 구성 요소 만 사용하도록 Angular 2 테이블 구성 요소에서 데이터를 공유하는 방법은 무엇입니까?

  12. 12

    언 바운드의 다른 인터페이스에 대해 다른 구성을 지정할 수 있습니까?

  13. 13

    열의 각 요소에 대해 다른 데이터 프레임의 일치하는 열을 기반으로 Pandas 데이터 프레임의 하위 집합 / 조각을 반환합니까?

  14. 14

    Mithril-하위 구성 요소가 상위 구성 요소 데이터를 수정 한 후 하위 구성 요소의 배열을 다시 정렬합니다.

  15. 15

    해시 맵이 있으면 배열의 각 문자열 인스턴스에 대해 1을 추가합니다.

  16. 16

    드래그 가능한 각 요소에 대해 droppable의 다른 속성을 구현하는 방법은 무엇입니까?

  17. 17

    각도에 다른 구성 요소를 추가하는 방법 및 이전 구성 요소와 동일한 데이터 및 추가 정보가 있습니다.

  18. 18

    React의 한 자식 구성 요소에서 다른 자식 구성 요소로 데이터 값을 전달하는 방법은 무엇입니까?

  19. 19

    상위 속성의 쓰기 가능이 false 인 동안 하위 인스턴스에 대해 동일한 이름의 속성을 만듭니다.

  20. 20

    두 가지 다른 구성 요소의 텍스트 위치를 정렬하는 방법은 무엇입니까?

  21. 21

    Angular 2의 데이터 업데이트에 대해 하위 구성 요소에 알립니다.

  22. 22

    두 테이블을 조인하되 각 고유 레코드의 첫 번째 인스턴스에 첫 번째 테이블의 데이터 만 포함합니다.

  23. 23

    각도 2 서비스에서 데이터를 조작해도 두 번째 구성 요소에서 변경되지 않습니다.

  24. 24

    일대 다 구성에서 공통 필드 데이터 포인트를 기반으로 두 목록을 필터링하는 가장 빠른 방법

  25. 25

    두 목록 집합에서 임의의 항목을 선택한 다음 모든 가능성으로 구성된 다른 목록에서 해당 항목 집합을 제거하려면 어떻게해야합니까?

  26. 26

    모델의 각 인스턴스에는 다른 모델의 인스턴스가 하나 이상 있습니다.

  27. 27

    전달 된 인스턴스가 소유 한 목록에 객체를 추가하는 다른 생성자에 클래스의 인스턴스를 전달합니다.

  28. 28

    하나의 Postgres 인스턴스에서 전체 데이터베이스를 복제하여 다른 인스턴스에서 호스팅되는 데이터베이스의 일부가 되려면 어떻게해야합니까?

  29. 29

    VueJS는 속성 값을 통해 하위 구성 요소에 사용자 정의 속성을 전달합니다.

뜨겁다태그

보관