【学一点儿前端】Bad value with message: unexpected token `.`. 问题及解决方法

问题

今天从vue3的项目copy一段代码到vue2项目,编译后访问页面报错了
在这里插入图片描述

Bad value with message: unexpected token `.`.

注意到错误字符‘.’,这个错误通常发生在处理 JavaScript 或者 HTML 中的动态表达式中,日常使用二分法不断缩小报错代码范围,最终锁定到这一行。

<view class="title"> {{ agreement[BANK_CODE]?.title }} </view>

注意到?.,可选链操作符
可选链是 ECMAScript 2020(ES2020)引入的新特性,因此它可能还不被vue2支持。因此我们需要避免使用他或者让项目变得支持使用。

解决方法1

使用计算属性来避免使用它

computed: {
  bankTitle() {
    return this.agreement[this.bankCode] ? this.agreement[this.bankCode].title : '';
  }
}
<view class="title"> {{ bankTitle }} </view>

解决办法2

直接给项目安装依赖,让项目支持使用可选链操作符,这个方法是从其它大佬那边学到的,方便在改动代码量大的时候用。
‘@babel/plugin-proposal-optional-chaining’, 是babel7用来解析js中的可选链运算符的;
‘vue-template-babel-compiler’,是用来解析vue模版中的可选链运算符;
使用’@babel/plugin-proposal-optional-chaining’

npm i @babel/plugin-proposal-optional-chaining

.babelrc中添加配置

{
  "presets": [],
  "plugins": [ "@babel/plugin-proposal-optional-chaining"],
}

使用’vue-template-babel-compiler’

npm i vue-template-babel-compiler

webpack中添加配置

module: {
    rules: [
      {
        test: /\.vue$/,
        loader: 'vue-loader',
        options: {
          compilerOptions: {
            preserveWhitespace: false
          },
          compiler: require('vue-template-babel-compiler') // 解析可选链
        }
      },
     
    ]
  },
  plugins: []
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值