Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vue.js 将数据传递到存储?_Vue.js_Vuejs2_Vuex - Fatal编程技术网

Vue.js 将数据传递到存储?

Vue.js 将数据传递到存储?,vue.js,vuejs2,vuex,Vue.js,Vuejs2,Vuex,如何将数据从vue组件传递到存储区 以下是我的组件: methods: { ...mapActions('NavBar', [ 'fix', ]), onClick: function() { this.fix('my-data'); }, .... 在商店里: actions: { fix: ({ commit }) => { //get data here? }, },

如何将数据从vue组件传递到存储区

以下是我的组件:

methods: {
    ...mapActions('NavBar', [
        'fix',
    ]),
    onClick: function() {
        this.fix('my-data');
    },
    ....
在商店里:

actions: {           
   fix: ({ commit }) => {
    //get data here?
   },
},

VueJS 2.x中的操作和突变可以使用一个附加参数(通常称为
有效负载
)和附加数据

从:

您可以将另一个参数传递给store.commit,该参数称为 变异的有效载荷:

在大多数情况下,有效负载应该是一个对象,以便它可以包含 多个字段,并且记录的突变也会更多 描述性:

以及:

操作支持相同的有效负载格式和对象样式分派:

文档中似乎不太清楚如何定义操作,但以下内容似乎可以工作:

actions: {
  incrementAsync ({ commit, state }, payload) { ... }
}

它必须是一个动作(可以是异步的),还是一个突变(对存储的同步更改)也可以工作?两者都可以,尽管我也想知道动作的情况,以供将来参考。
mutations: {
  increment (state, payload) {
    state.count += payload.amount
  }
}
store.commit('increment', {
  amount: 10
})
// dispatch with a payload
store.dispatch('incrementAsync', {
  amount: 10
})

// dispatch with an object
store.dispatch({
  type: 'incrementAsync',
  amount: 10
})
actions: {
  incrementAsync ({ commit, state }, payload) { ... }
}