Vuex中跨组件失效(passportjs传值)(已非正常方式解决)

发布于 2022-09-12 02:23:42 字数 816 浏览 26 评论 0

RT,下面是我的vuex

const state = () => ({
  user: {}
})

const mutations = {
  setUser (state, val) {
    state.user = val
    console.log(JSON.parse(JSON.stringify(state.user)))
  }
}

const actions = {
  setUser: ({ commit }, user) => {
    commit('setUser', user)
  }
}

export default { namespaced: true, state, mutations, actions } 

console.log(JSON.parse(JSON.stringify(state.user)))可以成功打出来如下的东西YUL%KWPV3BHY17$8$3HA_}E.png
但使用mapstate在网页上打出的时候是一个空的括号,问一下有什么可以解决的办法吗谢谢

<Content class="content_background">
    {{users}}
</Content>
import { mapState } from 'vuex'
export default {
  computed: {
    ...mapState({ users: state => state.usermodal.user.user })
  }
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

喜爱皱眉﹌ 2022-09-19 02:23:42
const state = {
  user: {}
}

猜你state改成这样就能响应了

余生共白头 2022-09-19 02:23:42

好像是这样的,我这个问题感觉应该是一个很小很小的bug
就是user这个东西传过来的时候是passportjs登录之后返回的一个对象(这个忘说了是我的疏忽抱歉大家)
但是这个对象好像返回时候产生的bug
就是它根本没法在Vuex中进行数据赋值
这个我在后台多加了一个获取的接口才解决的,谢谢大家

 async nuxtServerInit ({ commit }, { req, app }) {
    let { status: mistatus, data: { micode, miresult } } = await app.$axios.get('/manager/myself_infomation/getInfo')
    if (mistatus === 200 & micode === 0) {
      commit('usermodal/setUser', {
        user: miresult.filter(item => item._id.length).map(item => {
          return {
            id: item._id,
            name: item.adminname,
            sex: item.adminsex,
            email: item.adminemail,
            workdate: item.adminworkdate,
            photo: item.adminphoto,
            phonenumber: item.adminphonenumber,
            password: item.adminpassword,
            type: item.admintype,
            wages: item.adminwages
          }
        })
      })
    }
  }
router.get('/getInfo', async ctx => {
  try {
    ctx.body = {
      micode: 0,
      miresult: [ctx.req.user.result]
    }
  } catch (e) {
    ctx.body = {
      micode: -1,
      miresult: []
    }
  }
})
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文