因此,由于某种原因,我有这个错误时,我试图运行的应用程序在世博会去应用程序在我的手机。如果我在Web浏览器上运行,显然是可以的。
这是错误日志
参考错误:找不到变量:文本解码器
堆栈跟踪:
node_modules\expo\build\environment\react-native-logs.fx.js:27:4错误
node_modules\react-native\Libraries\Core\ExceptionsManager.js:95:4 in reportException
node_modules\react-native\Libraries\Core\ExceptionsManager.js:141:19 in handleException
node_modules\react-native\Libraries\Core\setUpErrorHandling.js:24:6 in handleError
node_modules@react-native\polyfills\error-guard.js:49:36 in ErrorUtils.reportFatalError
node_modules\metro-runtime\src\polyfills\require.js:203:6 in guardedLoadModule
http://192.168.0.29:19000/node_modules%5Cexpo%5CAppEntry.bundle?platform=android&dev=true&hot=false&strict=false&minify=false:190345:3 in global code.
3条答案
按热度按时间nhaq1z211#
这也发生在我们身上,在一个曾经在旧的世博会版本中工作的应用程序上。我们的解决方案是将这一行添加到
.babelrc.js
文件中:字符串
edqdpe6u2#
通过这样做解决了这个问题;
第一个月
npm install big-integer
个并将此代码粘贴到node_modules>react-native>Libraries>LogBox中
字符串
slwdgvem3#
它在网络上工作而不是在手机上工作的原因是因为
TextDecoder
是一个Web API,通常在所有现代浏览器JS引擎中可用,但它不支持爱马仕(React Native的JS引擎)。解决此问题的方法是为API使用polyfill并将其全局公开。一个简单的方法是使用这个polyfill library。另一种方法是模仿该库的功能,这使您可以更灵活地选择要使用的polyfill,因为有许多选项可供选择(例如,请参阅此处的竞争对手列表)。为此,您需要安装您选择的polyfill(例如:
npx expo install text-encoding
),然后创建一个包含以下内容的文件:字符串
然后将这个文件导入到你的
App.js
文件中(或者如果使用Expo的Router v2,则导入到你的root_layout.js
文件中),并像这样调用导出的函数:型
可能值得注意的是,您可以添加任何其他需要支持这种方式的全局API。您可以将其添加到同一个文件中,也可以将其拆分为每个全局API的不同util函数,以进行树摇动等。