React Native google-protobuf -无法找到变量:原型

vsaztqbk  于 2022-11-17  发布在  React
关注(0)|答案(1)|浏览(196)

我在React Native(v0.65.1)中使用google-protobuf(v3.21.0)时遇到问题,以便使用expressif(Security1)通过SoftWiFi连接设备(IoT)
在使用curve25519成功创建了私钥和公钥之后,我需要使用protobuf来传递有效负载。为此,我将按照下面的说明进行解释:https://medium.com/@singhandresh09/using-protobuf-in-react-native-7cc8286389f5
在用protoc编译器成功创建js文件后,我成功地运行了应用程序。
我得到的错误是指protoc session_pb.js创建的文件:

Can't find variable: proto

goog.object.extend(proto, sec0_pb)

在这里复制它就是我所做的。

  • 首先导入创建的js文件. var session_pb = require('../../../proto/session_pb');

然后用它

const s = new session_pb.S0SessionCmd();
   const r = s.setClientPubKey('123');

我注意到,在创建的js文件中,“proto”没有在任何地方定义。

...
// GENERATED CODE -- DO NOT EDIT!
/* eslint-disable */
// @ts-nocheck

var jspb = require('google-protobuf');
var goog = jspb;
var global = (function() { return this || window || global || self || Function('return this')(); }).call(null);

var sec0_pb = require('./sec0_pb.js');
goog.object.extend(proto, sec0_pb);   <--- here is where the error occurs
var sec1_pb = require('./sec1_pb.js');
goog.object.extend(proto, sec1_pb);
var sec2_pb = require('./sec2_pb.js');
goog.object.extend(proto, sec2_pb);
...

fnvucqvd

fnvucqvd1#

我遇到了同样的问题,并通过禁用metro.config.js中的inlineRequires解决了它。

{
  transformer: {
    getTransformOptions: async () => ({
      transform: {
        experimentalImportSupport: false,
        inlineRequires: false,
      },
    }),
  }
}

相关问题