Javascript 如何在React Native中启用装饰程序

Javascript 如何在React Native中启用装饰程序,javascript,react-native,babeljs,Javascript,React Native,Babeljs,这是错误 src\components\LeftMenu\MenuOverlay.js: F:\PROJECT ONE\mspone-expo\src\components\LeftMenu\MenuOverlay.js: Decorators are not enabled. If you are using ["@babel/plugin-proposal-decorators", { "legacy": true }], make sure it c

这是错误

src\components\LeftMenu\MenuOverlay.js: F:\PROJECT ONE\mspone-expo\src\components\LeftMenu\MenuOverlay.js: Decorators are not enabled.
If you are using ["@babel/plugin-proposal-decorators", { "legacy": true }], make sure it comes *before* "@babel/plugin-proposal-class-properties" and enable loose mode, like so:
        ["@babel/plugin-proposal-decorators", { "legacy": true }]
        ["@babel/plugin-proposal-class-properties", { "loose": true }]
  10 |
  11 |
> 12 | @withTheme
     | ^
  13 | class MenuOverlay extends PureComponent {
  14 |   static propTypes = {
  15 |     goToScreen: PropTypes.func,
Failed building JavaScript bundle.

我安装了npm I--save dev customize cra react应用程序重新布线

MenuOverLay.js源代码

/** @format */

import React, { PureComponent } from "react";
import PropTypes from "prop-types";
import { connect } from "react-redux";
import SideMenu from "react-native-drawer";

import { withTheme, warn} from "@common";
import { Drawer } from "@components";


@withTheme
class MenuOverlay extends PureComponent {
  static propTypes = {
    goToScreen: PropTypes.func,
    routes: PropTypes.object,
    isOpenMenu: PropTypes.bool.isRequired,
  };

  toggleMenu = (isOpen) => {
    if (!isOpen) {
      this.props.toggleMenu(isOpen);
    }
  };

  render() {
    const {
      isOpenMenu,
      theme: {
        colors: {text, background },
      },
    } = this.props;

    warn(this.props.theme)

    return (
      <SideMenu
        ref={(_drawer) => (this.drawer = _drawer)}
        type="overlay"
        tapToClose
        open={isOpenMenu}
        onClose={() => this.toggleMenu(false)}
        panCloseMask={0.3}
        panThreshold={0.3}
        openDrawerOffset={0.3}
        useInteractionManager
        content={
          <Drawer
            colorTextMenu={text}
            backgroundMenu={background}
            goToScreen={this.props.goToScreen}p
          />
        }>
        {this.props.routes}
      </SideMenu>
    );
  }
}

const mapStateToProps = ({ sideMenu }) => ({
  isOpenMenu: sideMenu.isOpen,
});

const mergeProps = (stateProps, dispatchProps, ownProps) => {
  const { dispatch } = dispatchProps;
  const { actions: sideMenuActions } = require("@redux/SideMenuRedux");
  return {
    ...ownProps,
    ...stateProps,
    toggleMenu: (isOpen) => dispatch(sideMenuActions.toggleMenu(isOpen)),
  };
};
export default connect(
  mapStateToProps,
  null,
  mergeProps
)(MenuOverlay);
我尝试添加“插件”:[[“@babel/plugin提案装饰器”{ “legacy”:true}]到babel.config.json,然后应用程序启动失败,但没有解决问题,我甚至将babel.config.json重命名为babelrc,但没有解决问题

{
  "presets": ["babel-preset-expo"],
  "env": {
    "production": {
      "plugins": ["transform-remove-console"]
    }
  }
}