关于vuex中的this.$store.commit()问题

1.第一次使用vuex, 很多地方都不懂, 输入的账号和密码都是正确的, 登陆页面使用 this.$store.commit('token', res.data.data)报错

clipboard.png

main.js

import Vuex from "vuex"
Vue.use(Vuex)

login页面

    <div class="login_form">
      <el-form :label-position="labelPosition" label-width="80px" :model="form">
        <el-form-item>
          <i class="account_icon"></i>
          <el-input v-model="form.userName" placeholder="登录账户"></el-input>
        </el-form-item>
        <el-form-item prop="password">
          <i class="password_icon"></i>
          <el-input type="password" v-model="form.password" auto-complete="off" placeholder="登录密码"></el-input>
        </el-form-item>
        <div class="checkbox">
          <input type="checkbox">
          <span class="login_password">记住密码</span>
        </div>
        <div>
          <button @click="onSubmit" :plain="true">登录</button>
        </div>
        <div class="login_embellish">
          <i class="embellish_one"></i>
        </div>
      </el-form>
      <i class="modifier_left"></i>
      <i class="modifier_right"></i>
    </div>

js

export default {
  data() {
    return {
      labelPosition: "right",
      form: {
        userName: "",
        password: ""
      }
    }
  },
  methods: {
    onSubmit() {
      let paramsData = {
        username: this.form.userName,
        password: this.form.password
      };
      this.$ajax.post(this.$api.Login, paramsData).then(res => {
        if (res.status == 200) {
          console.log("res", res);
          this.$store.commit('token', res.data.data)
          if(res.data.status == 401) {
            this.$message.error(res.data.message);
          }
        }
      })
      .catch(err => {
        console.log(err);
      })
    }
  }
}
阅读 24.1k
2 个回答

看看是不是忘了注入state到实例
vuex文档

const app = new Vue({
  el: '#app',
  // 把 store 对象提供给 “store” 选项,这可以把 store 的实例注入所有的子组件
  store,
  components: { Counter },
  template: `
    <div class="app">
      <counter></counter>
    </div>
  `
})

this.$storeundefined,当然报错啦

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题