2016-12-17 4 views
1

私はこのような素敵な突然変異JSファイルを持っています。Vueストアの突然変異に2番目のパラメータを送信できません

export default { 
    UPDATE_DATA: (state, data, meta) => { 
    state.dataTable = data; 

    if (meta === undefined) 
     return; 

    state.activeDataRow = meta; 
    }, ... 
} 

次のように異なる動作が呼び出されています。

context.commit("UPDATE_DATA", Map.table(payload.type, data)); 
context.commit("UPDATE_DATA", Map.table(payload.type, data), meta); 

私はアクションで送信されたメタをチェックしましたし、それは間違いなく未定義ではありません。しかし、私が突然変異のメタをチェックすると、それは!どうして?この問題をどのようにして殺すのですか?

答えて

4

vuex docsが示唆するものは、第2引数にペイロードを送信することです。多くの場合

それは複数のフィールドを含めることができるように、ペイロードは、オブジェクトであるべきであり、記録の変異はまた、より記述になります。ですから、ペイロードと、このようにそれを呼び出すことができます

context.commit("UPDATE_DATA", {data: Map.table(payload.type, data), meta: meta}); 

とあなたの突然変異は、以下のようになります。

export default { 
    UPDATE_DATA: (state, payload) => { 
    state.dataTable = payload.data; 

    if (payload.meta === undefined) 
     return; 

    state.activeDataRow = payload.meta; 
    }, ... 
} 

Object-Style Commitと呼ばれる突然変異も同様に呼び出す方法があります。次のように、タイプを突然変異名としてオブジェクトを渡すことができます。

context.commit({ 
    type:: "UPDATE_DATA", 
    data: Map.table(payload.type, data), 
    meta: meta 
}); 
+0

右。私はWebページ上でそれを解釈した方法を見ましたが、ペイロードオブジェクトの使用は推奨事項であり、技術的な必須事項ではありませんでした。だからこそ、私がメタ面でスクワットをしたときに私は驚いた。ペイロードにすべてを入れることは、要件ではなく、示唆ではないようです。とにかく、私は1つのアクションから2つの別々の突然変異を使用して解決しました。 (それは現在の状況ではより意味をなさない) –

+0

おい、私はあなたの担当グラフを見直しました。あなたは4年間怠惰な状態になっていました。何かが起こりました。評判はちょうど爆発しました。何が変わったの? –

+0

@KonradVilterstenまあ私はVueを始めた:) – Saurabh

関連する問題