使用pinia定义store的state属性和actions方法重名导致调用时出现is not a function异常

目录

问题现象

解决方法


问题现象

一个很低级的错误。不过表现的很奇怪。直接跳转到这个页面时会提示下面的错误,但是按F5刷新页面,又可以调用actions中的方法获取到服务端的数据​

store的定义如下。state的属性和actions的方法都是permissions​

export const UserStore=defineStore('user',{
    state:()=>{
        return{
            permissions:null,
        }
    },

    actions:{
        
        async permissions(userData){
            try{
                const permissionResp=await apiList.permissions(userData)
                const result=JSON.parse(permissionResp)
                if(result.code===200){
                    this.permissions=result.permissions
                }
                return result
            }catch(e){
                console.log(e)

            }
        },
})

页面调用如下:​

<template>
<el-form-item label="权限">
          <el-transfer
              v-model="userGroupForm.selectedPermisssion"
              filterable
              :filter-method="filterMethod"
              filter-placeholder="请输入搜索内容"
              :data="data"
              :titles="['可选权限', '已选权限']"
              :key="isUpdated"
          />
</template>

<script setup>
const isUpdated = ref(false)
let data = reactive([])

const getAllPermissons = (async () => {
  const curUserName = JSON.parse(sessionStorage.getItem('userInfo')).username

  const permissionResp = await userStore.permissions({username:curUserName})
  if (permissionResp) {
    const retCode = permissionResp.code
    if (retCode === 200) {

      data = generateData(permissionResp.permissions)
      isUpdated.value=!isUpdated.value
    } else {
      console.log(permissionResp.msg)
    }
  }
})



onMounted(() => {
  getAllPermissons()

})

</script>

解决方法

把actions中的方法改个名称即可,例如getPermissions

  • 8
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

尘烟生活家

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值