当前位置: 首页 > news >正文

react启用mobx @decorators装饰器语法

react如果没有经过配置,直接使用decorators装饰器语法会报错:
Support for the experimental syntax ‘decorators’ isn’t currently enabled
在这里插入图片描述
因为react默认是不支持装饰器语法,需要做一些配置来启用装饰器语法。

step1:

在 tsconfig.json 中启用编译器选项 “experimentalDecorators”: true
vscode点击设置,输入搜索experimentalDecorators
在这里插入图片描述

step2:

安装支持修饰器所需依赖。

yarn add -D @babel/core @babel/plugin-proposal-decorators @babel/preset-env

创建.babelrc文件,配置

{"presets": ["@babel/preset-env"],"plugins": [["@babel/plugin-proposal-decorators",{"legacy": true}]]
}
step3:

安装依赖

yarn add -D customize-cra react-app-rewired

在项目根目录下创建 config-overrides.js 并写入以下内容,覆盖默认配置。

const path = require('path')
const { override, addDecoratorsLegacy } = require('customize-cra')function resolve(dir) {return path.join(__dirname, dir)
}const customize = () => (config, env) => {config.resolve.alias['@'] = resolve('src')if (env === 'production') {config.externals = {'react': 'React','react-dom': 'ReactDOM'}}return config
};
module.exports = override(addDecoratorsLegacy(), customize())
step4:

修改package.json文件中 scripts 脚本。

"scripts": {"start": "react-app-rewired start","build": "react-app-rewired build","test": "react-app-rewired test","eject": "react-scripts eject"}

上面4个步骤配置完成后,如果mobx修饰器还是不起作用,就可能是mobx版本有问题,执行step5。

step5:

执行下面命令

yarn add -D mobx@5 mobx-react@5

执行到step5,就能成功使用mobx修饰器了。

注意,如果报错
Parsing error: Cannot use the decorators and decorators-legacy plugin together
在这里插入图片描述
可以创建.eslintrc.js文件,配置即可解决eslint报错问题

parserOptions: {parser: 'babel-eslint',ecmaFeatures: {// 支持装饰器legacyDecorators: true,},},

在这里插入图片描述

http://www.lryc.cn/news/397532.html

相关文章:

  • 计算机如何学习
  • 【Python 基础】函数 - 1
  • 从0到1开发一个Vue3的新手引导组件(附带遇到的问题以及解决方式)
  • 概率统计(二)
  • 文件类:如何将excel文件转为csv文件(且保留时间格式)?
  • FiddlerScript Rules修改-更改发包中的cookie
  • 直升机停机坪的H代表什么
  • hyperworks软件许可优化解决方案
  • 四川赤橙宏海商务信息咨询有限公司抖音电商服务靠谱吗?
  • 鸿蒙开发:Universal Keystore Kit(密钥管理服务)【密钥派生(C/C++)】
  • 【ARMv8/v9 GIC 系列 6 -- 中断优先级详细介绍】
  • 【CORS 报错】跨域请求问题:CORS 多种环境下的解决方案
  • 【Scrapy】深入了解 Scrapy 中间件中的 process_spider_output 方法
  • GigE Vision GVCP/GVSP
  • 结合C++智能指针聊聊观察者模式
  • 【React】监听浏览器返回事件
  • python用selenium网页模拟时无法定位元素解决方法1
  • css中文字书写方向
  • 医学王者刊!影响因子自创刊只增不减,3区跃升1区,国人发文占比6成!
  • 数据建设实践之大数据平台(五)
  • js原型和类---prototype,__proto__,new,class
  • bevfomer self-att to transformer to tensorrt
  • Day01-ElasticSearch的单点部署,集群部署,多实例部署,es-head和postman环境搭建
  • Linux--DHCP原理与配置
  • Hi3861 OpenHarmony嵌入式应用入门--华为 IoTDA 设备接入
  • Pytorch张量
  • 医院同步时钟系统提供可靠的时间支持
  • 【中项第三版】系统集成项目管理工程师 | 第 11 章 规划过程组② | 11.3 - 11.5
  • 无人直播赚钱的底层逻辑是什么?一文揭晓!
  • d3dcompiler_43.dll文件是什么?如何快速有效的解决d3dcompiler_43.dll文件丢失问题