首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Vuex突变应该是函数,但"mutations.default“是{}

Vuex突变应该是函数,但"mutations.default“是{}
EN

Stack Overflow用户
提问于 2019-02-14 13:12:18
回答 3查看 1.9K关注 0票数 0

我试图获取数据并将其插入到基本html表中。

代码语言:javascript
复制
<tr>
    <td v-for="item in dataTable" :key="item.id">{{item.threadName}}</td>
</tr>

但是,当我执行一个已安装的函数时,我会遇到这个错误。

mutation.js

代码语言:javascript
复制
import Vue from 'vue'

export default {
    receiveAll (state, data) {
        data.forEach(item => {
            return item
        })
    }
}

这就是我在actions.js中模仿它的地方

代码语言:javascript
复制
import * as api from '../api'

export const getData = ({ commit }) => {
    api.getData(data => {
        commit('receiveAll', data)
    })
}

data.js

代码语言:javascript
复制
'use strict';

module.export = [
    {
        id: 'm_1',
        threadID: 't_1',
        threadName: 'Jing and Bill',
        authorName: 'Bill',
        text: 'Hey Jing, want to give a Flux talk at ForwardJS?',
        timestamp: Date.now() - 99999
    },
    {
        id: 'm_2',
        threadID: 't_1',
        threadName: 'Jing and Bill',
        authorName: 'Bill',
        text: 'Seems like a pretty cool conference.',
        timestamp: Date.now() - 89999
    }
]

api/index.js

代码语言:javascript
复制
const data = require('./data')
const LATENCY = 16

export function getData (cb) {
    setTimeout(() => {
        cb(data)
    }, LATENCY)
}

这是vuex商店

代码语言:javascript
复制
import Vue from 'vue'
import Vuex from 'vuex'
import * as actions from './actions'
import * as mutations from './mutations'

Vue.use(Vuex)

const state = {
    getData: []
}

export default new Vuex.Store({
    state,
    actions,
    mutations
})

在我的组件中,我简单地启动了两个v-模型和计算出来的数据。

代码语言:javascript
复制
<script>
    import { mapActions } from 'vuex'

    export default {
        name: 'SearchTable',
        data () {
            return {
                search_query: '',
                search_sort: ''
            }
        },
        computed: mapActions({
            dataTable: 'getData'
        })
    }
</script>
EN

回答 3

Stack Overflow用户

发布于 2019-05-07 18:32:07

vuex存储的文件中,更改从

代码语言:javascript
复制
import * as mutations from './mutations'

代码语言:javascript
复制
import mutations from './mutations'

因为您要导出一个对象,而不是单独的变量,

您不能从文件中导入所有(也称为*)。

票数 3
EN

Stack Overflow用户

发布于 2019-02-14 14:33:24

这是正确的,突变是对象,它有方法。此示例的简短形式。

代码语言:javascript
复制
 export default {
        receiveAll: function (state, data) {
            data.forEach(item => {
                state.getData.push(item)
            })
        }
   }

请参阅方法定义

您必须插入数据以说明何时会发生突变。

代码语言:javascript
复制
export default {
    receiveAll (state, data) {
        data.forEach(item => {
            state.getData.push(item)
        })
    }
}
票数 0
EN

Stack Overflow用户

发布于 2019-06-24 08:15:06

检查花括号是否正确地关闭了突变对象,这是一个简单的错误,但是给出了相同的错误消息。

代码语言:javascript
复制
mutations: {
     getAppIds: (state, payload) => {

   }
  <== this curly braces was missing for me
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54691262

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档