【问题标题】:ReferenceError: Can't find variable: TextEncoderReferenceError:找不到变量:TextEncoder
【发布时间】:2019-09-16 00:27:56
【问题描述】:

我将 VSCode/Typescript React 3.4.3 用于 React Native 项目,但在运行时使用 TextEncoder 时遇到问题

ts 代码:

...
var encoder = new TextEncoder();
var b: Uint8Array = encoder.encode(newName);
...

我的 tsconfig 库:

  "module": "es2015",
    "target": "es2015",
    "jsx": "react",
    "lib": ["es5", "es2017", "dom"]

此编译正常,但在运行时尝试创建 TextEncoder 实例时失败:

“ReferenceError:找不到变量:TextEncoder”

我不明白这里出了什么问题。

任何帮助表示赞赏

编辑 1:事实上,当您调试 JS 代码时,它会在 Chrome 中运行,这会导致成功。但是当你不支持的时候,你会发现 JavaScriptCore 既不支持 TextEncorder 也不支持 btoa。

所以我选择使用 npm 模块(text-encodingbase-64):

import * as encoding from 'text-encoding';
import {encode as btoa} from 'base-64'
...
var encoder = new encoding.TextEncoder();
...

【问题讨论】:

  • 也许你的运行时没有TextEncoder。哪个浏览器报告了问题?
  • React Native JSC。
  • 你是怎么解决这个问题的?
  • @j10 请参阅上面关于使用 nom 模块的问题中的编辑 1。

标签: typescript react-native


【解决方案1】:

【讨论】:

    【解决方案2】:

    我在使用 stomp.js 套接字时遇到了同样的错误。

    我所做的只是放了

    import * as encoding from 'text-encoding';

    在 App.js 中,在发布和调试中都可以正常工作

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-02-20
      • 2018-04-24
      • 2016-10-30
      • 2012-03-18
      • 2015-11-16
      • 2011-05-22
      • 2014-12-16
      • 2022-01-23
      相关资源
      最近更新 更多