1

我已经使用 npm 在我的项目中安装了 react-router-native,但我收到一条错误消息:

E:/myapp/node_modules/react-router-native/NativeRouter.js, 11:9 Module parse failed: Unexpected token (11:9).... 你可能需要一个合适的加载器来处理这个文件类型,目前没有加载器配置为处理此文件。见 https://webpack.js.org/concepts#loaders

包.json:

{
  "main": "node_modules/expo/AppEntry.js",
  "scripts": {
    "start": "expo start",
    "android": "expo start --android",
    "ios": "expo start --ios",
    "web": "expo start --web",
    "eject": "expo eject"
  },
  "dependencies": {
    "@material-ui/core": "^4.11.2",
    "expo": "~40.0.0",
    "expo-status-bar": "~1.0.3",
    "firebase": "^8.2.0",
    "react": "16.13.1",
    "react-dom": "16.13.1",
    "react-native": "https://github.com/expo/react-native/archive/sdk-40.0.1.tar.gz",
    "react-native-vector-icons": "^7.1.0",
    "react-native-web": "~0.13.12",
    "react-router-native": "^5.2.0"
  },
  "devDependencies": {
    "@babel/core": "~7.9.0"
  },
  "private": true
}

react-router-native 给出错误的文件(NativeRouter.js):

import React from "react";
import { Alert } from "react-native";
import { MemoryRouter } from "react-router";
import PropTypes from "prop-types";

/**
 * The public API for a <Router> designed for React Native. Gets
 * user confirmations via Alert by default.
 */
function NativeRouter(props) {
  return <MemoryRouter {...props} />;
}

NativeRouter.defaultProps = {
  getUserConfirmation: (message, callback) => {
    Alert.alert("Confirm", message, [
      { text: "Cancel", onPress: () => callback(false) },
      { text: "OK", onPress: () => callback(true) }
    ]);
  }
};

const __DEV__ = true; // TODO

if (__DEV__) {
  NativeRouter.propTypes = {
    initialEntries: PropTypes.array,
    initialIndex: PropTypes.number,
    getUserConfirmation: PropTypes.func,
    keyLength: PropTypes.number,
    children: PropTypes.node
  };
}

export default NativeRouter;
4

0 回答 0