Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/388.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
Javascript vue.js:错误未知操作类型?_Javascript_Vue.js_Nuxt.js - Fatal编程技术网

Javascript vue.js:错误未知操作类型?

Javascript vue.js:错误未知操作类型?,javascript,vue.js,nuxt.js,Javascript,Vue.js,Nuxt.js,我创建了我的商店/user.js export const state = () => ({ user: {}, }); export const mutations = { }; export const actions = { AUTH ({commit},{email, password}){ console.log('email, password =', email, password) } }; export const getters = {}

我创建了我的商店/user.js

export const state = () => ({
      user: {},
    });
export const mutations = {

};
export const actions = {
  AUTH ({commit},{email, password}){
console.log('email, password =', email, password)
  }
};

export const getters = {};
组成部分:

<template>
<form @submit.prevent="AUTH(model)">
  <input type="text"  required v-model.lazy = "model.email">
    <input type="password" required v-model.lazy = "model.password" >
</template>


<script>
  import { mapActions } from 'vuex'

  export default {

    data() {
      return {
        model:{
          email:" " ,
          password:" "

      }

      }
    },
    methods: {
      ...mapActions(['AUTH']),
}
}
// template
<form @submit.prevent="submitForm">

// script
methods: {
    ...mapActions({
         auth: 'users/AUTH'
    }),
    submitForm () {
        this.auth(this.model)
    }
}
我对这个问题没有任何想法

index.js

import Vue from 'vue'
import Vuex from 'vuex'

import user from './modules/user.js'

Vue.use(Vuex);

const store = new Vuex.Store({
  modules: {
    user
  }
})

您需要使用
createNamespacedHelpers

import { createNamespacedHelpers } from 'vuex'

const { mapState, mapActions } = createNamespacedHelpers('users')

否则,映射帮助程序需要完整的模块命名空间:

...mapActions([
  'users/AUTH'
])

// if you are only using one module in the component
...mapActions('users', [
  'AUTH'
])
numxt

你混合了经典和模块模式。使用模块模式时,Nuxt从
index.js
文件创建存储实例。您只需导出状态、getter、突变和操作。状态应作为函数导出:

export const state = () => ({
  foo: 0,
  bar: 1
})
存储
目录中的任何文件都将被视为模块,Nuxt将自动将其注册为带名称空间的模块

- store
-- index.js // the store
-- users.js // module 'users'
-- foo.js // module 'foo'
用户模块在其他方面看起来是正确的

对组件进行以下更改:

<template>
<form @submit.prevent="AUTH(model)">
  <input type="text"  required v-model.lazy = "model.email">
    <input type="password" required v-model.lazy = "model.password" >
</template>


<script>
  import { mapActions } from 'vuex'

  export default {

    data() {
      return {
        model:{
          email:" " ,
          password:" "

      }

      }
    },
    methods: {
      ...mapActions(['AUTH']),
}
}
// template
<form @submit.prevent="submitForm">

// script
methods: {
    ...mapActions({
         auth: 'users/AUTH'
    }),
    submitForm () {
        this.auth(this.model)
    }
}
//模板
//剧本
方法:{
…映射操作({
auth:'用户/auth'
}),
提交形式(){
this.auth(this.model)
}
}

您能否提供创建门店的代码?您使用的是vuex模块吗?因为您使用的是模块,所以它将是。请参阅。[numxt]store/index.js应导出一个返回Vuex实例的方法。在Nuxt中使用模块模式时,我犯了一个错误,您不能自己创建存储。相反,导出状态、getter、突变和操作。如何使用nuxt?我得到err Uncaught TypeError:_vm.AUTH不是一个函数使用
this.$store.dispatch('users/AUTH')
。并且属性或方法“AUTH”没有在实例上定义,而是在呈现期间引用。我修复了,但得到fn.bind不是一个函数。我看不出在您发布的任何代码中使用了
bind