React項(xiàng)目中decorators裝飾器報(bào)錯(cuò)問題解決方案
問題:
我先安裝了decorators:
然后運(yùn)行項(xiàng)目就報(bào)錯(cuò)emmmmm:
src\pages\home\cookbook\swiper.jsx
Line 21: Parsing error: This experimental syntax requires enabling one of the following parser plugin(s): "decorators-legacy", "decorators". (21:0)
下面是百度之后轉(zhuǎn)載的文章:
在初次使用React 的裝飾器時(shí),第一次在項(xiàng)目中使用 @會(huì)報(bào)錯(cuò),原因是react默認(rèn)是不支持裝飾器的,所以才會(huì)報(bào)錯(cuò),所以是需要做一些配置來支持裝飾器。
1.創(chuàng)建項(xiàng)目
npm install -g create-react-app // 安裝create-react-app,已安裝請(qǐng)忽略 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 腳本
"scripts": { "start": "react-app-rewired start", "build": "react-app-rewired build", "test": "react-app-rewired test", "eject": "react-scripts eject" }
4.在項(xiàng)目根目錄下創(chuàng)建 config-overrides.js 并寫入以下內(nèi)容
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()) 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.在項(xiàng)目根目錄下創(chuàng)建 .babelrc 并寫入以下內(nèi)容
{ "presets": [ "@babel/preset-env" ], "plugins": [ [ "@babel/plugin-proposal-decorators", { "legacy": true } ] ] }
基本完成以上步驟就可以正常使用裝飾器了,再也不會(huì)報(bào) @ 的錯(cuò)誤了。同時(shí)Support for the experimental syntax ‘decorators-legacy’ isn’t currently enabled這個(gè)錯(cuò)誤也將消失。
雖然我用了以上方法,但是它emmmm。。。好吧還是在報(bào)錯(cuò),但是關(guān)掉報(bào)錯(cuò)并不耽誤使用,有人懂為什么嗎,哭了555555555
到此這篇關(guān)于React項(xiàng)目中decorators裝飾器報(bào)錯(cuò)的文章就介紹到這了,更多相關(guān)react decorators裝飾器報(bào)錯(cuò)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
React實(shí)現(xiàn)浮層組件的思路與方法詳解
React?浮層組件(也稱為彈出組件或彈窗組件)通常是指在用戶界面上浮動(dòng)顯示的組件,本文主要介紹了浮層組件的實(shí)現(xiàn)方法,感興趣的小伙伴可以了解下2024-02-02React配置Redux并結(jié)合本地存儲(chǔ)設(shè)置token方式
這篇文章主要介紹了React配置Redux并結(jié)合本地存儲(chǔ)設(shè)置token方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-01-01Rect Intersection判斷兩個(gè)矩形是否相交
這篇文章主要為大家介紹了Rect Intersection判斷兩個(gè)矩形是否相交的算法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-06-06關(guān)于react-router-dom路由入門教程
這篇文章主要介紹了關(guān)于react-router-dom路由入門教程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-03-03基于React的狀態(tài)管理實(shí)現(xiàn)一個(gè)簡(jiǎn)單的顏色轉(zhuǎn)換器
這篇文章主要介紹了用React的狀態(tài)管理,簡(jiǎn)簡(jiǎn)單單實(shí)現(xiàn)一個(gè)顏色轉(zhuǎn)換器,文中有詳細(xì)的代碼示例供大家參考,具有一定的參考價(jià)值,需要的朋友可以參考下2023-08-08從零開始搭建一個(gè)react項(xiàng)目開發(fā)
這篇文章主要介紹了從零開始搭建一個(gè)react項(xiàng)目開發(fā),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-02-02React?Native集成支付寶支付的實(shí)現(xiàn)方法
這篇文章主要介紹了React?Native集成支付寶支付的實(shí)現(xiàn)現(xiàn),ativeModules是JS代碼調(diào)用原生模塊的橋梁。所以,我們只需要在原生工程中集成支付寶和微信支付的sdk,然后使用NativeModules調(diào)用即可,需要的朋友可以參考下2022-02-02React.memo函數(shù)中的參數(shù)示例詳解
這篇文章主要為大家介紹了React.memo函數(shù)中的參數(shù)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-09-09