1
変更します。また、私は、このオブジェクトのための時計を持っている、と私はそれに応じて別のオブジェクトを更新しています...コンポーネントの小道具は、私はこのようになります多次元のオブジェクトを持って
new Vue({
el: '#app',
data: {
obj: {},
newObj: {}
},
watch: {
obj: {
handler(obj) {
}
}
}
})
私は小道具としてNEWOBJを使用していますが、forループを実行するコンポーネントに渡します。
ハンドラの内部で、オブジェクトの第1レベルのキーを変更すると、コンポーネントはDOMを更新します。
handler(obj) {
this.$set(this.newObj, key, {
[innerKey]: [ [] ]
});
}
ただし、セカンダリレベルのキーを変更しようとすると、コンポーネントはDOMを更新しません。
handler(obj) {
var key = 1;
var additions = ['a', 'b', 'c']
// First try:
var scafold = this.newObj[key]
scafold[additions[i]] = [ [] ];
this.newObj[key] = scafold;
// Second try:
this.$set(this.newObj[key], additions[i], [ [] ]);
}
私はVUEデバッガを確認した場合、それは両方の方法を使用して欲しかったように、オブジェクトが更新さを示し、が、DOMは変更されません。
私が言ったように、それは内部の鍵を見ずそれに応答しないと信じています。この問題を克服する正しい方法は何ですか?
私はしませんでした。私は今すぐ解決策を見つけました。最初に私は 'this.newObj [key]'を削除してから 'this。$ set(this.transferForms、key、scalfold)'を実行しました。 – senty
'' 'delete this.newObj [key]' ' 'それはパフォーマンスの低下を知っているからです。 '' 'this。$ forceUpdate()' ''はあなたの問題に対処するために特別に作成されたもので、試してみることもできます。 – Simon
私はこれを試しました。$ forceUpdate here:https://jsfiddle.net/Lp9nmxn9/15/、コンポーネントケースでは動作しませんでした – senty