reactjs - react native Android 应用程序 react native Web 应用程序

标签 reactjs react-native web picker react-native-web

我正在尝试将我的 React-Native Android 应用程序转换为 React-Native Web 应用程序。在执行此操作时,我在 @react-native-picker\picker 中遇到错误。

编译失败 ./node_modules/@react-native-picker/picker/js/Picker.web.js SyntaxError: C:\Users\User\Desktop\react-native\TestProject\node_modules@react-native-picker\picker\js\Picker.web.js:意外的 token (9:12)

   7 | 
   8 | import React from 'react';
>  9 | import type {
     |             ^
  10 |   ViewStyleProp,
  11 |   TextStyleProp,
  12 | } from 'react-native/Libraries/StyleSheet/StyleSheet';

如何解决这个问题?

最佳答案

看起来 Picker.web.js 包含使用 Flow 编写的代码,因此您需要确保您的 Web 项目启用了 Flow 支持。


由于您使用的是 Create React App,因此您需要自定义配置,以便为 node_modules 内的包启用 Babel:

  1. 安装customize-crareact-app-rewired:
npm install --save-dev customize-cra react-app-rewired 
  • 按照以下步骤完成react-app-rewired的安装:https://github.com/timarney/react-app-rewired#how-to-rewire-your-create-react-app-project

  • node_modules/@react-native-picker/picker 配置 Babel include:

  • // config-overrides.js
    
    const path = require('path');
    const {
        babelInclude,
        override,
    } = require('customize-cra');
    
    module.exports = override(
        babelInclude([
            path.resolve('src'),
            path.resolve(__dirname, 'node_modules/@react-native-picker/picker'),
        ]),
    );
    

    关于reactjs - react native Android 应用程序 react native Web 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65474486/

    相关文章:

    react-native - 如何隐藏或抑制 react native 警告

    javascript - 使用三元表达式渲染组件

    javascript - HTTPS被浏览器取消,我的请求被视为HTTP请求

    python - 使用测试驱动开发对 Web API 进行编程

    php - 如何从网页调用python脚本

    javascript - 如何使用 react-swipe-card 在 React 中构建可堆叠的卡片?

    html - 如何在react js中获取HTML5数据属性的值

    javascript - 如何增加 Semantic UI 中各个选项的高度?

    css - Antd 内联表单子(monad)项宽度

    react-native - 404错误找不到入口文件index.js