文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

ReactJS应用兼容ios9对标ie11问题怎么解决

2023-07-04 23:25

关注

本篇内容介绍了“ReactJS应用兼容ios9对标ie11问题怎么解决”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

遇到问题

遇到问题之后有一个更大的问题就是手上没有ios9的机器,毕竟这个太他娘的古老了,我就去搜了一下ios9的出现时间,根据百度可知苹果IOS9将于2015年9月16日正式向用户推送,但是同时可以知道ie11于2013年10月17日随Windows 8.1发行,所以(我猜的)只要能够兼容ie11,那么兼容ios9应该就问题不大了,而且目前已知的解决兼容ie的方案比较多,没找到啥兼容ios的方案,就先从ie入手。

解决方案

已知react兼容ie可以使用babel,实际上项目里面已经用了babel,只不过没有兼容ie11

初始配置

{    // react 版本    "react": "^16.13.1",    "react-dev-utils": "^10.2.1",    "react-dom": "^16.13.1",    "react-redux": "^7.2.0",    "react-rnd": "^10.2.2",    "react-router-dom": "^5.2.0",    "redux": "^4.0.5",    // babel 版本    "@babel/core": "7.9.0",    "babel-eslint": "10.1.0",    "babel-jest": "^24.9.0",    "babel-loader": "8.1.0",    "babel-plugin-import": "^1.13.5",    "babel-plugin-named-asset-import": "^0.3.6",    "babel-preset-react-app": "^9.1.2",    // browserslist    "browserslist": {    "production": [      ">0.2%",      "not dead",      "not op_mini all"    ],    "development": [      "last 1 chrome version",      "last 1 firefox version",      "last 1 safari version"    ]  },  // babel config  "babel": {  "presets": [      "react-app"    ],    "plugins": [      [        "import",        {          "libraryName": "antd-mobile",          "style": "css"        }      ]    ]  }}

ie的报错显示是

ReactJS应用兼容ios9对标ie11问题怎么解决

安装@babel/preset-env

在语法正确的情况下遇到语法错误/缺少标识符的报错很大概率可能是es6+语法没有被编译成es5的语法,查看打包后的文件存在大量的const/let/解构等没有被编译。

SCRIPT1002: 语法错误

SCRIPT1010: 缺少标识符

ReactJS应用兼容ios9对标ie11问题怎么解决

yarn add @babel/preset-env babel-polyfill --save-dev
// index.tsx 顶部引入import 'babel-polyfill';
// presets 添加 @babel/preset-env ,target 配置 "ie > 9""babel": {  "presets": [    "react-app",    [      "@babel/preset-env",      {        "targets": {          "ie": 9        }      }    ]  ],  "plugins": [    [      "import",      {        "libraryName": "antd-mobile",        "style": "css"      }    ]  ]}
  "browserslist": {    "production": [      ">0.2%",      "not dead",      "not op_mini all",      "ie >= 9"    ],    "development": [      "last 1 chrome version",      "last 1 firefox version",      "last 1 safari version",      "ie >= 9"    ]  },

安装 @babel/plugin-proposal-decorators 和 @babel/plugin-proposal-class-properties

其实配置完@babel/preset-env应该就可以了,但是项目里面使用了装饰器和类,所以还是报错:

SyntaxError: xxx.ts: Decorators are not enabled.If you are using ["@babel/plugin-proposal-decorators", { "version": "legacy" }], make sure it comes *before* "@babel/plugin-proposal-class-properties" and enable loose mode, like so:        ["@babel/plugin-proposal-decorators", { "version": "legacy" }]        ["@babel/plugin-proposal-class-properties", { "loose": true }]  27 | }  28 | > 29 | @StoreConfig({ name: "auth", resettable: true })     | ^  30 | export class AuthStore extends Store<Auth> {  31 |   constructor() {  32 |     super(createInitialState());

ReactJS应用兼容ios9对标ie11问题怎么解决

按照提示安装 @babel/plugin-proposal-decorators@babel/plugin-proposal-class-properties。(ps:使用yarn安装,因为项目使用的是node sass,所以node版本是14.16,对应的npm是6,安不上这两个插件。)

yarn add @babel/plugin-proposal-decorators @babel/plugin-proposal-class-properties --save-dev
"babel": {  "presets": [    "react-app",    [      "@babel/preset-env",      {        "targets": {          "ie": 9        }      }    ]  ],  "plugins": [    [      "@babel/plugin-proposal-decorators",      {        "legacy": true      }    ],    [      "@babel/plugin-proposal-class-properties",      {        "loose": true      }    ],    [      "import",      {        "libraryName": "antd-mobile",        "style": "css"      }    ]  ]}

安装promise

其实到上面一步已经差不多了,如果还报Promise undefined,可以单独引入Promise挂载到windeow上。

“ReactJS应用兼容ios9对标ie11问题怎么解决”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯