react装饰器报错怎样处理
发布时间:2023-07-08 12:00:23 所属栏目:教程 来源:未知
导读: 这篇文章主要介绍“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 => 打上勾勾 ![]() (编辑:源码网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐