【发布时间】: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-encoding 和 base-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。