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

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

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    vuex的值修改问题
    32
    0

    我的项目用了vuex和router,然后我的store是直接写在main.js中的,如下

    const store = new Vuex.Store({
      state: {
        urlex:'http://pj.dianmila.com/supersolid/images/',
        issign: 0,
        icon:'',
        name:''
      },
      mutations: {
        login(state,next){
        axios.post('url')
        .then(function (res) {
                    var datajson = res.data;
                    state.issign = datajson.state;
                    state.icon=datajson.img;
                    state.name=datajson.nickname;
                    if(datajson.state == 1) {
                        axios.post('url')
                        .then(function (res) {
                                        var datajson = res.data
                                        var mylist = datajson.list[0]
                                        state.name=mylist.name
                                        next()
                                })
                        .catch(function (error) {
                        window.location.href = "url"
                        });
                    }
                    else next();
                })
        .catch(function (error) {
        window.location.href = "url"
        });
        }
      }
    })

    然后还定义了一个导航守卫

    router.beforeEach((to, from, next) => {
        window.document.title = '超固态社交站';
      store.commit('login',next)
    })

    然后发现运行之后,那些store的state的值都没改变,为什么呢,代码也没有报错,就是store的值改变不了

    问题描述

    问题出现的环境背景及自己尝试过哪些方法

    相关代码

    // 请把代码文本粘贴到下方(请勿用图片代替代码)

    你期待的结果是什么?实际看到的错误信息又是什么?

    题目描述

    题目来源及自己的思路

    相关代码

    // 请把代码文本粘贴到下方(请勿用图片代替代码)

    你期待的结果是什么?实际看到的错误信息又是什么?

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 风走不留痕 普通会员 1楼

      在 Vue.js 中,我们经常需要通过 state 对象来管理组件的状态。在 Vue.js 中,状态数据是存储在组件内部的。当你在组件内部修改状态数据时,需要在组件的相应数据属性上进行标记,这样 Vue.js 会自动更新这些数据。

      以下是一个简单的例子,假设我们有一个购物车组件,它需要更新购物车中的商品数量:

      javascript export default { data() { return { count: 0 } }, methods: { increment() { this.count++ } } }

      methods 属性中,我们定义了一个 increment 方法,这个方法会增加 count 的值。然后在 data 属性中,我们将 count 的初始值设置为 0。

      当我们访问购物车组件时,我们可以通过 this.$store.state.count 来获取购物车中的商品数量:

      ```javascript

      ```

      在上面的代码中,我们使用了 Vuex 的 state,这样我们就可以在组件的任何地方修改 count 的值。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部