2017-02-06 2 views
0

을 정의되지 나는 다음과 같은 코드를 작성하고 뷰는 불평 : VueJS2 속성이

은 [뷰는 경고] : 건물 또는 방법 "사건"은 인스턴스에서 정의되어 있지만 렌더링하는 동안 참조되지 않습니다. 데이터 옵션에 반응성 데이터 속성을 선언해야합니다.

인시던트에 액세스 할 수없는 이유는 무엇입니까? 외부로부터 할당 될 수있다 소품, 구성 요소에 대한 props 키를 사용하여 정의되는 동안

var app = new Vue({ 
    el: '#app', 
    data: { 
     responders: [], 
     incidents: [] 
    }, 

    mounted: function() { 
     this.getIncidents(); 
    }, 

    methods: { 
     getIncidents: function() { 
      console.log('getIncidents'); 
      var app = this; 
      this.$http.get('/api/v1/incidents').then(function(response) { 
       // set data 
       var incidentsReceived = response.data.map(function (incident) { 
        return incident; 
       }); 
       Vue.set(app, 'incidents', incidentsReceived); 
      }) 
     }, 

     getResponders: function() { 
      console.log('fetchResponders'); 
      var app = this; 
      this.$http.get('/api/v1/responders').then(function(response) { 
       // set data on vm 
       var respondersReceived = response.data.map(function (responder) { 
        return responder 
       }); 
       Vue.set(app, 'responders', respondersReceived); 
      }); 
     } 
    } 
}) 
+0

문제를 보여주는 [fiddle] (https://jsfiddle.net/er3tjyh0/)을 만들 수 있습니까? – Saurabh

답변

0

data은 내부 성분 데이터 모델링을 의미한다.

즉, 시도 : 구성 요소 속성에 대한 전체 문서에 대해서는

var app = new Vue({ 
    ..., 
    props: { 
    incidents: { 
     type: Array, 
     required: false //change this as you see fit. 
    } 
    }, 
    ... 
}); 

official guide를 참조하십시오.

+0

하지만 구성 요소를 정의하지 않았습니다. VueJS1.0에서 나는 항상 다음과 같이 "데이터"컨테이너에 데이터를 저장했다 :'새로운 Vue ( el : '#app', 데이터 : { 메시지 : '폐하 인사!' }); – sesc360

+0

루트 vue 인스턴스와 구성 요소 모두 동일한 방식으로 인터페이스 속성을 사용합니다. 속성 값을 어떤 식 으로든 제공하는 일종의 템플릿이 있다고 가정했지만 Vue.set (...)을 사용하는 동안 오류가 발생하는 것 같습니다. 그렇다면 Vue.set을 사용해야 할 지 확신하지 못합니다. 당신이 찾고있는 것이 '데이터'에서 '사건'에 액세스하는 'this.incidents'와 같은 것입니다. –

0

편집 : 코드를 처음 읽지는 않았습니까? 응답 내에 데이터가 있는지 확인하고 그렇지 않은 경우 인시던트 배열을 설정하십시오.

+0

Vue.set을 사용하여 마지막 접근을 시도했지만 여전히이 오류가 발생합니다. 변수 인시던트에 콜백 함수 내에서 값을 할당하려고합니다. 이상한 것은 응답자 기능이 완벽하게 작동한다는 것입니다! 그것은 같은 구조입니다, 그래서 나는 사건이 왜 작동하지 않는지 보지 못합니다. – sesc360

+0

자기와 함께 했습니까? 응답 내에서 실제로 어떤 데이터가 있는지 확인할 수 있습니다. D : D –

+0

이 var app = this에서 작동하지 않는다는 것을 알았습니다. 예, 데이터를 사용할 수 있습니다. – sesc360