返回顶部
首页 > 资讯 > 前端开发 > JavaScript >记一次vuex的mapGetters无效原因及解决
  • 749
分享到

记一次vuex的mapGetters无效原因及解决

2024-04-02 19:04:59 749人浏览 泡泡鱼
摘要

目录Vuex的mapGetters无效原因vuex mapGetters语法报错(Unexpected token)解决方案vuex的mapGetters无效原因 报错是(error

vuex的mapGetters无效原因

报错是(error during evaluation),见下图。

代码大概是下面这样,

import store from './store.js'
computed: {
    ...mapGetters('project', [
        'isOpenSupplyNeed',
    ]),
    a(){
        return store.getters['project/isOpenSupplyNeed']
    }
},

然后就是在vue-devtools面板里看到这样的报错

然而另一个属性a,是有正确的值的。

后来下断点看报错,发现了问题。

this.$store是undefined。

因为在new Vue的时候,没有将store注入进来,导致vuex里的代码this.$store获取不到。

结论就是如果用到这些辅助函数,一定要保证new Vue的时候注入store。

vuex mapGetters语法报错(Unexpected token)

在使用vuex2的mapGetters 和 mapActions 的方法时,借助 stage2 的 Object Rest Operator 特性,可以写出下面代码: 

computed: {
    ...mapGetters([  // … 三个点,在框架语言里,就是传对象
        'hadChannels',
        'currentChannel'
    ])
}

但是在借助babel编译转换时发生了报错: BabelLoaderError: SyntaxError: Unexpected token 。 

搜索一番,结果是babel 没有解析成功,看来是 babel的配置为问题

原来的 .babelrc

{
  "presets": [
    ["env", {
      "modules": false,
      "targets": {
        "browsers": ["> 1%", "last 2 versions", "not ie <= 8"]
      }
    }],
    "stage-2"
  ],
  "plugins": ["transfORM-vue-jsx", "transform-runtime"]
}

解决方案

接着在babel的issues中搜索这样的报错,原来是我babel预置的转换器是 babel-preset-es2015 ,并不能转换 Object Rest Operator 特性。 

1.安装 Object Rest Operator 的babel插件  npm i -D babel-plugin-transform-object-rest-spread 。 

babel: {
presets: ["es2015"],
plugins: [
    "transform-runtime",
    "transform-object-rest-spread"]
}

2. 安装整个stage2的预置器  npm i -D  babel-preset-stage-2

babel: {
presets: ["stage-2"],
plugins: [
    "transform-runtime"
    ]
}

安装、配置都完成以后 ,重启webpack,就不会再有报错了。

后记:还有人修改了eslint配置中对 Object Rest Operator 的支持解决了问题,不过跟我这种不一样先记下来。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

--结束END--

本文标题: 记一次vuex的mapGetters无效原因及解决

本文链接: https://lsjlt.com/news/166476.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 记一次vuex的mapGetters无效原因及解决
    目录vuex的mapGetters无效原因vuex mapGetters语法报错(Unexpected token)解决方案vuex的mapGetters无效原因 报错是(error...
    99+
    2024-04-02
  • SpringAop @Around执行两次的原因及解决
    在使用AOP环绕通知做日志处理的时候,发现@Around方法执行了两次,虽然这里环绕通知本来就会执行两次,但是正常情况下是在切点方法前执行一次,切点方法后执行一次,但是实际情况却是,...
    99+
    2024-04-02
  • Android开发中requestfocus()无效的原因及解决办法
    前言 最近做公司项目的时候,经常会遇到一个问题,就是我为某个控件如EditText设置requestfocus()的时候不管用,比如说登陆的时候,我判断下用户输入的密码,如果正...
    99+
    2022-06-06
    android开发 Android
  • BaseAdapter导致notifyDataSetChanged()无效的三个原因及解决方法
    BaseAdapter导致notifyDataSetChanged()无效的三个原因及解决方法:1. 数据源没有改变:notifyD...
    99+
    2023-09-12
    BaseAdapter
  • c++句柄无效的原因及解决方法是什么
    C++中,句柄无效的原因可能有以下几种:1. 未正确初始化句柄:如果句柄没有被正确初始化,它可能会被赋予一个无效值。这通常是由于程序...
    99+
    2023-10-20
    c++
  • @ComponentScan在spring中无效的原因分析及解决方案
    目录@ComponentScan在spring中无效查了大量资料之后,找到了原因@Component和@ComponentScan常规理解@Component和@ComponentS...
    99+
    2024-04-02
  • idea密钥无效的原因及解决方法是什么
    idea密钥无效的原因可能包括: 密钥输入错误:可能是由于输入错误或者复制粘贴时出现问题,导致密钥无效。 已过期的密钥:如果...
    99+
    2024-03-06
    idea
  • IIS7中Ajax.AjaxMethod无效的原因及解决方法是怎样的
    本篇文章给大家分享的是有关IIS7中Ajax.AjaxMethod无效的原因及解决方法是怎样的,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。 ...
    99+
    2024-04-02
  • @ComponentScan在spring中无效的原因分析以及解决方法
    这篇文章将为大家详细讲解有关@ComponentScan在spring中无效的原因分析以及解决方法,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。@ComponentScan在spring中无...
    99+
    2023-06-25
  • sql表对象无效的原因及解决方法是什么
    SQL表对象无效的原因可能有以下几种:1. 表对象不存在:如果使用的表对象在数据库中不存在,就会导致无效。可能是表名拼写错误或者表在...
    99+
    2023-08-09
    sql
  • SpringAop @Around执行两次的原因以及解决方法
    这篇文章主要讲解了“SpringAop @Around执行两次的原因以及解决方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“SpringAop @Around执行两次的原因以及解决方法”吧...
    99+
    2023-06-20
  • SQL Server ISNULL 不生效原因及解决
    目录SQL Server ISNULL 不生效原因问题原因解决方法SQL Server ISNULL 真是个坑,CPU飙升90% +SQL Server ISNULL 不生效原因 数据库:SQL Server ...
    99+
    2024-04-02
  • SQL Server ISNULL 不生效原因及解决
    目录SQL Server ISNULL 不生效原因问题原因解决方法SQL Server ISNULL 真是个坑,CPU飙升90% +SQL Server ISNULL 不生...
    99+
    2024-04-02
  • 记一次 MySQL出现“Lock wait timeout”错误的原因
    先说原因: 手动开启事务,由于处理业务时间过长,既不提交也未报错回滚,长时间占用事务就会出现这种情况,错误 关键字:trx_state为 running 故障场景:在测试环境中,在修改订单中偶现Lock wait timeout,且一直重复...
    99+
    2023-08-20
    mysql 数据库 java
  • React事件节流效果失效的原因及解决
    目录此处问题出现在: 解决方式1: 解决方式2: 在构造函数中赋值初始化采坑总结:今天做react项目中,给一个 input onKeyDown 事件做节流,出现...
    99+
    2024-04-02
  • MySQL sql_mode修改不生效的原因及解决
    前言 近期多次聊到sql_mode的话题,也是多次遇到相关问题,今天就趁热打铁,再给大家带来一个sql_mode的案例分享。 场景模拟 基于业务敏感性的考虑,下面涉及的表、存储过程等均非真实数据,但并不影响排查过...
    99+
    2022-05-25
    MySQL sql_mode MySQL sql_mode修改不生效
  • springboot 设置server.port不生效的原因及解决
    springboot 设置server.port不生效 近年来,springboot以其快速构建方便便捷,开箱即用,约定优于配置(Convention Over Configurat...
    99+
    2024-04-02
  • Vue.$set失效的原因以及解决方案
    这篇文章主要讲解了“Vue.$set失效的原因以及解决方案”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Vue.$set失效的原因以及解决方案”吧!偶然在项目中发现Vue.$set失效有这样...
    99+
    2023-06-20
  • 一些常见IIS无法访问PHP的原因及解决方法
    在Windows的Web服务器环境中,IIS是非常常见的Web服务器软件之一。作为一个全面的Web服务器,IIS可以运行各种类型的Web应用程序,包括基于PHP语言编写的应用程序。然而,在实际应用中,有时我们会发现IIS无法访问或运行PHP...
    99+
    2023-05-14
    php iis
  • Oracle Index索引无效的原因与解决方法
    索引无效原因 最近遇到一个Oracle SQL语句的性能问题,修改功能之前的运行时间平均为0.3s,可是添加新功能后,时间达到了4~5s。虽然几张表的数据量都比较大(都在百万级以上),但是也都有正确创建索引...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作