react装饰器报错如何解决-成都快上网建站

react装饰器报错如何解决

这篇文章主要介绍“react装饰器报错如何解决”,在日常操作中,相信很多人在react装饰器报错如何解决问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”react装饰器报错如何解决”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

创新互联建站是一家集网站建设,江都企业网站建设,江都品牌网站建设,网站定制,江都网站建设报价,网络营销,网络优化,江都网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。

react装饰器报错的解决办法:1、通过“create-react-app mobx-study”创建项目;2、通过“yarn add -D react-app-rewired customize-cra”安装插件;3、修改package.json文件中scripts脚本;4、在项目根目录下创建“config-overrides.js”和“.babelrc”即可。

一、decorators装饰器报错@

在初次使用React 的装饰器时,第一次在项目中使用 @
会报错,原因是react默认是不支持装饰器的,所以才会报错,所以是需要做一些配置来支持装饰器。

【报错显示:Parsing error: This experimental syntax requires enabling one of the following parser plugin(s): “decorators-legacy”, “decorators”.】
react装饰器报错如何解决

1. 创建项目

npm install -g create-react-app  
// 安装create-react-app,已安装请忽略
create-react-app mobx-study

2. 安装插件 —— 改变 create-react-app 中 webpack 配置

yarn add -D react-app-rewired customize-cra
yarn add -D @babel/core @babel/plugin-proposal-decorators @babel/preset-env

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

// package.json
"scripts": {
   "start": "react-app-rewired start",
   "build": "react-app-rewired build",
   "test": "react-app-rewired test",
   "eject": "react-scripts eject"
 }

4. 在项目根目录下创建 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())

5. 在项目根目录下创建 .babelrc 并写入以下内容

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

基本完成以上步骤就可以正常使用装饰器了,再也不会报 @ 的错误了。同时Support for the experimental syntax ‘decorators-legacy’ isn’t currently enabled这个错误也将消失。

二、对修饰器的实验支持功能在将来的版本中可能更改。在 “tsconfig” 或 “jsconfig” 中设置 “experimentalDecorators” 选项以删除此警告。ts(1219)

设置 => 搜索experimentalDecorators => 打上勾勾
react装饰器报错如何解决

到此,关于“react装饰器报错如何解决”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注创新互联网站,小编会继续努力为大家带来更多实用的文章!


文章名称:react装饰器报错如何解决
标题网址:http://kswjz.com/article/jojcce.html
扫二维码与项目经理沟通

我们在微信上24小时期待你的声音

解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流