オブジェクトのデフォルトプロパティを作成し、それらを「反応的」に保つことの間に正しい均衡を見つけようと苦労しています。重要な注意私は私の店のためにVuexを使用しています。Vuejs/Vuexの反応性(デフォルト)プロパティを作成する正しい方法は何ですか?
私はすでに確認:https://vuejs.org/v2/guide/reactivity.html
をしかし、これは完全に私の質問に答えていないようです。私の問題の好例与えること
:私の「店」では
を私は連絡先を含む、製品(JSON)を持っています。ある時点で私のアプリケーションの中に新しい連絡先が製品に追加されます。これのために私は行動を起こす。
const actions = {
addContact: ({ commit }, payload) => {
commit('ADD_CONTACT', payload)
}
}
これは突然変異を呼び出す。
const mutations = {
'ADD_CONTACT' (state, payload) {
var contact = {'id': payload.contact.contactId, 'gender': payload.contact.gender, 'firstName': payload.contact.firstName, 'initials': payload.contact.initials, 'lastName': payload.contact.lastName, 'middleName': payload.contact.middleName, 'birthDay': payload.contact.birthDay, 'childern': []}
state.products.find(function (product) {
if (product.id === payload.product_id) {
if (product.contacts) {
product.contacts.push(contact)
} else {
Vue.set(product, 'contacts', [])
product.contacts.push(contact)
}
}
})
}
}
私が確認したように、製品に連絡先の配列があるかどうかを確認します。これは正しい方法ですか?あるいは、空の配列 'childern'を定義して連絡先を追加するなど、空の配列を最初から作成する方が意味があります。
var contact = {'id': payload.contact.contactId, 'childern': []}
ありがとう!
お返事ありがとうございます@Amresh Venugopalしかし、連絡先の中にchildern配列を持っていることがわからない場合はどうすればよいですか?これは、すべての 'データ'要素をあらかじめ定義することによって、それを強く静的にしませんか? –
あなたの質問にも状態を投稿すれば、私はそれを調べることができます。このような場合(オブジェクトの配列)では、オブジェクトの配列を状態のプロパティの1つとして保持しています。すべてのオブジェクト要素を反応させることができます。 –