账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    vuex如何将数据存入store
    29
    0

    问题描述

    刚开始使用vue写功能,loginStore中的data为空,我想的就是可不可以将api.js中的userdata存入store中!

    相关代码

    loginStore.js

    import {
      login
    } from "../Services/api.js";
    import {
      to
    } from "await-to-js";
    import {
      resolve
    } from "path";
    export default {
      state: {
        username: 'admin',
        password: '123456',
        userdata: ''
      },
      mutations: {
        ADD_LOGIN_USER_INFO(
          state, data
        ) { //存入sessionStorage
          sessionStorage.setItem("userdata", JSON.stringify(data)); 
          state.userdata = data;
        },
      },
      actions: {
        async login({
          state,
          commit,
        }) {//登录方法
          let data = await to(
            login.handleLogin({
              userCode: state.username,
              userPassword: state.password
            })
          );
          if (state.username == null || state.username == "" || state.username.replace(/(^\s*)|(\s*$)/g, "") == "") {
            alert("输入的账号为空!");
            return;
          } else if (state.password == null || state.password == "" || state.password.replace(/(^\s*)|(\s*$)/g, "") == "") {
            alert("输入的密码为空!");
            return;
          }
          //表单验证,如果为空或者输入空格就直接return,不将数据传入后台
          console.log(JSON.stringify(data));
          commit("ADD_LOGIN_USER_INFO", data); 
        }
      },
      getters: {
    
      }
    }
    

    loginStore这里的data 打出来是[null,null]

    api.js

    import axios from "axios";
    import Qs from "qs";
    import store from "../store/loginStore"
    let  userdata;
    export  const login = {
      //管理员登录
      async handleLogin() {
        let postData = Qs.stringify({
          userCode: store.state.username,
          userPassword: store.state.password
        });
        return axios({
          method: 'post',
          url: '/login/loginVerify',
          data: postData
        }).then((res) => {
          if (res.data.code == 1) {
            userdata = res.data.result;
            console.log(userdata) //输出的返回的结果
            alert("登录成功!")
          } else {
            alert("登录失败!")
            return;
          }
        }).catch(function (error) {
          console.log(error);
        });
      },
    }
    

    结果

    我想的是data中就有值了,不用在api.js这个搞userdata了

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    更多回答
    扫一扫访问手机版

    回答动态

    师傅被妖怪抓走了:发布了悬赏问题火爆全网的“元宇宙”到底是什么?预计能赚取 1积分收益
    酒后略带风情:发布了悬赏问题Android内存中Graphics与Code占用过高预计能赚取 10积分收益
    扛起拖把扫天下:发布了悬赏问题typescript如何导出接口配置?求解,谢谢!预计能赚取 10积分收益
    发布了悬赏问题Vue 如何改变返回页面的路径?如让B页面只能返回到A页面.预计能赚取 11积分收益
    发布了悬赏问题vue H5移动端;底部bottom固定定位,安卓弹起键盘导致页面变形如何解决?预计能赚取 10积分收益
    发布了悬赏问题请问为什么tomcat8.5 GET请求中文正常,POST请求还需要设置UTF-8.预计能赚取 10积分收益
    发布了悬赏问题vue2.5+ts创建以及引入jq的方法预计能赚取 11积分收益
    情场浪女:发布了悬赏问题import ggplot时报错module 'pandas' has no attribute 'tslib'预计能赚取 10积分收益
    见心书画许老师18753375161:发布了悬赏问题echarts3 legend禁止点击事件,允许悬浮事件预计能赚取 11积分收益
    aa_92cb0bd09f:发布了悬赏问题codewar上的一个问题预计能赚取 11积分收益