【问题标题】:ES6 Proxy not defined in React Native when not in remote debug mode?不处于远程调试模式时未在 React Native 中定义 ES6 代理?
【发布时间】:2016-08-10 10:57:02
【问题描述】:

我正在使用代理包装导入的 SDK 类,以便我最终可以捕获 RequestExceptions,即当没有网络连接来显示错误弹出窗口时。

应用程序在远程调试模式下运行没有问题,但是,当我禁用它时,会抛出错误 Can't find Variable: Proxy。我需要以某种方式明确导入吗?或者是否有另一种方法来包装一个类,以便我可以捕获它的所有异常?

以下是代理包装器的代码。

从'backend-sdk'导入后端; 从'backend-sdk/src/exceptions/RequestException'导入RequestException; 让处理程序 = { 获取:(目标,名称,接收者)=> { 尝试 { return Reflect.get(target, name, receiver); } 抓住 (e) { if (e instanceof RequestException) { 控制台.错误(e); //TODO 为失败的 API 请求添加 toast 通知 } 别的 { 扔e; } } } }; 导出默认新代理(新后端(),处理程序);

【问题讨论】:

    标签: react-native


    【解决方案1】:

    默认情况下,react native 中没有填充代理。它可以在 chrome 调试器中工作,因为 react native 在调试期间使用 chrome js 引擎,请参阅Document on js environment。您可以尝试使用Proxy pollyfill

    【讨论】:

    • 谢谢,完美运行。我还必须填充反射:github.com/tvcutsem/harmony-reflect
    • @Mastergalen 能否请您发布更多关于您如何使其与 proxy-polifill + Harmony-reflect 一起使用的 cmets。我认为 Android 仍然是这个问题,它对我来说并不是真正的工作。
    【解决方案2】:

    请注意as of react-native 0.59,Android 上的 react-native 现在使用更现代的 JavaScriptCore 版本,包括代理支持。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-07-02
      • 2017-05-05
      • 2019-06-17
      • 2018-07-31
      • 2019-07-24
      • 2018-03-31
      • 1970-01-01
      • 2018-09-17
      相关资源
      最近更新 更多