2017-03-26 8 views
0

こんにちは私はどのようにvue jsの小道具の値を突然変異させるのか理解していません。私はvue-chartjsを使ってchartjを使って動的にグラフを再レンダリングしています。動作は動作しますが、updateValues()関数を起動するとコンソールメッセージが表示されます。VueJS propを突然変異させる方法は?

Vue警告:親コンポーネントが再レンダリングするたびに値が に上書きされるため、小道具を直接変更しないでください。代わりに、小道具の値に基づいて データまたは計算されたプロパティを使用します。プロップは 突然変異しています: "myData"

小道具を正しく突然変異させるにはどうすればよいですか?

// Parent Component 
 
<bar-graph :myData="dataCollection" :height="250"></bar-graph> 
 

 
data() { 
 
    return { 
 
    dataCollection: { 
 
     labels: [2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017], 
 
     datasets: [ 
 
     { 
 
      label: 'Sample Lables', 
 
      backgroundColor: 'red', 
 
      data: [5000, 5000, 5000, 5000, 5500, 5500, 10000, 5500, 5500] 
 
     } 
 
     ] 
 
    } 
 
    } 
 
}, 
 
methods: { 
 

 
    updateValues() { 
 
    this.dataCollection = { 
 
     labels: [5000, 5000, 5000, 5000, 5500, 5500, 10000, 5500, 5500], 
 

 
     datasets: [ 
 
     { 
 
      label: 'Sample Lables', 
 
      backgroundColor: 'red', 
 
      data: [5000, 5000, 5000, 5000, 5500, 5500, 10000, 5500, 5500] 
 
     } 
 
     ] 
 
    } 
 
    } 
 
} 
 
     
 
     
 
//Child component bar graph 
 

 
import { Bar } from 'vue-chartjs' 
 

 
export default Bar.extend({ 
 

 
    props: ['myData'], 
 

 
    mounted() { 
 
    this.renderChart(this.myData, {responsive: true, maintainAspectRatio: false}) 
 
    }, 
 
    watch: { 
 
    myData: function() { 
 
     console.log('destroy') 
 
     this._chart.destroy() 
 
     this.renderChart(this.myData, {responsive: true, maintainAspectRatio: false}) 
 
    } 
 
    } 
 
})

+0

を使用しています。 MyDataは、親コンポーネントからプロパティとして受け取られています。そこでベークを更新すると、更新された値が自動的にサブコンポーネントに渡され、再レンダリングされます。 – Christopher

+0

更新ベーキング?もっと説明できますか? – xagos

+0

申し訳ありませんが自動修正。私はデータを意味しました。 – Christopher

答えて

0

小道具の値に基づいて、データや計算されたプロパティを使用します。

だけのデータプロパティに

data() { 
    return { 
    myPropData: myData 
    } 
} 

をあなたの小道具をバインドし、警告のみが正しいmyPropData

+0

あなたは精緻化できますか?私はこれを親コンポーネントと子コンポーネントの両方で実行しようとしましたが、動作しませんでした。 – xagos

+0

子プロセスでこれを試してみて、myDataの値を変更するすべてのメソッドに注意を払う代わりに、小道具に基づいてデータを使用してください –

+0

それは解決しませんでした警告、それはちょうどfuntionalityを破った – xagos

関連する問題