当前位置: 首页 > 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,},},

在这里插入图片描述

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • nigix的下载使用
  • LeetCode K次取反后最大化的数组和(贪心算法)
  • 【深度学习基础】MAC pycharm 专业版安装与激活
  • 【银河麒麟服务器操作系统】系统夯死分析及处理建议
  • Java基础(十九):集合框架
  • 每天一个数据分析题(四百二十六)- 总体方差
  • 动态模型管理:Mojo模型的自定义保存与加载控制
  • hutool处理excel时候空指针小记
  • Windows下编译OpenSSL静态库
  • 华为机试题-单车道汽车通行时间-Java
  • CentOS6用文件配置IP模板
  • 东软“引战”国家队 通用技术“补链”大国重器
  • 分类模型的算法性能评价
  • 如何设计一个C语言面向结构体的内存数据库
  • 政安晨【零基础玩转各类开源AI项目】基于Ubuntu系统部署MuseV (踩完了所有的坑):基于视觉条件并行去噪的无限长度和高保真虚拟人视频生成
  • .pyc 想到的一些问题
  • angular2开源库收集
  • Django 博客开发教程 16 - 统计文章阅读量
  • ECS应用管理最佳实践
  • go append函数以及写入
  • JAVA之继承和多态
  • LeetCode18.四数之和 JavaScript
  • leetcode讲解--894. All Possible Full Binary Trees
  • markdown编辑器简评
  • spring + angular 实现导出excel
  • ViewService——一种保证客户端与服务端同步的方法
  • Vim Clutch | 面向脚踏板编程……
  • 前端学习笔记之观察者模式
  • 如何在 Tornado 中实现 Middleware
  • 山寨一个 Promise
  • 什么是Javascript函数节流?
  • 一个6年java程序员的工作感悟,写给还在迷茫的你
  • 阿里云ACE认证学习知识点梳理
  • 湖北分布式智能数据采集方法有哪些?
  • 移动端高清、多屏适配方案
  • ​configparser --- 配置文件解析器​
  • # wps必须要登录激活才能使用吗?
  • #if #elif #endif
  • #VERDI# 关于如何查看FSM状态机的方法
  • #考研#计算机文化知识1(局域网及网络互联)
  • $Django python中使用redis, django中使用(封装了),redis开启事务(管道)
  • $nextTick的使用场景介绍
  • (01)ORB-SLAM2源码无死角解析-(66) BA优化(g2o)→闭环线程:Optimizer::GlobalBundleAdjustemnt→全局优化
  • (1)Android开发优化---------UI优化
  • (55)MOS管专题--->(10)MOS管的封装
  • (cljs/run-at (JSVM. :browser) 搭建刚好可用的开发环境!)
  • (HAL库版)freeRTOS移植STMF103
  • (PADS学习)第二章:原理图绘制 第一部分
  • (poj1.3.2)1791(构造法模拟)
  • (pojstep1.1.2)2654(直叙式模拟)
  • (Repost) Getting Genode with TrustZone on the i.MX
  • (八)Flask之app.route装饰器函数的参数
  • (附源码)c#+winform实现远程开机(广域网可用)
  • (附源码)spring boot公选课在线选课系统 毕业设计 142011
  • (附源码)ssm高校志愿者服务系统 毕业设计 011648