2017-12-16 14 views
0

이것은 간단한 구성 요소입니다. 나는 propsdata에 할당하려하고 있으므로 docs라고 말했습니다. 문제는 initialData은 OK입니다 만, privateData은 빈 개체 {}입니다데이터에 소품을 할당 할 수 없습니다.

<template> 
    <section> 
     {{ initialData }} 
     {{ privateData }} 
    </section> 
</template> 

<script> 
export default { 
    name: 'someName', 
    props: [ 
     'initialData' 
    ], 
    data() { 
     return { 
      privateData: this.initialData 
     }; 
    } 
}; 

을합니다 (initialData는 vuex 및 데이터베이스에서 온다)하지만.

이상한 점은 다시 파일을 저장하면 webpack에서 다시로드되는 내용이 다르기 때문에 privateData도 필요한 적절한 데이터를 가져옵니다.

<template> 
    <section v-if="initialData"> 
     <child :initial-data="initialData"></micro-movies> 
    </section> 
</template> 

<script> 
export default { 
    name: 'parentName', 
    data() { 
     return {}; 
    }, 
    computed: { 
     initialData() { 
      return this.$store.state.initialData; 
     } 
    }, 
    components: { 
     child 
    } 
}; 
</script> 

나는 그것이 동적으로 데이터를 가져 오는 관하여 알고 : 여기

는 부모입니다. 왜냐하면 내가 수동으로 어떤 객체에 부모의 initialData을 변경하면 잘 동작하기 때문이다.

+0

데이터가 다른 데이터/속성에 종속되는 경우 계산 된 속성 사용 –

+0

부모로부터 소품을 전달하는 코드도 표시 할 수 있습니까? 여기의 코드는 괜찮아 보입니다. –

+0

@ RakeshSoni 내가 그랬어. 그리고 그것은 잘 작동합니다. 그러나 모든 데이터 변경에는'forceUpdate()'가 필요합니다. 나는 '데이터'로 변경하여 구성 요소를 자동으로 업데이트하려고합니다. –

답변

0

데이터 함수는 구성 요소 생성시 번만으로 지정됩니다. 이 시점에 initialData이 채워지지 않은 경우 privateData은 항상 null입니다. 그래서 계산 된 속성을 사용하거나 속성을 보려고합니다.