reactjs - 如何使用reactjs在grpc调用中传递数组
问题描述
我想使用“grpc-web-client”模块将一组对象发送到带有 reactjs 的 grpc 调用中。但它在发送对象数组时给了我一个错误。以下是错误:
TypeError: n.toArray is not a function
我不明白为什么它不发送这个。以下是我要发送的对象数组的结构:
let events = [{
title:"event title"
}];
在 .proto 文件中定义如下:
message EventProfile {
repeated Events events = 2;
}
message EventSlots {
string title = 1;
}
请有人帮我解决这个问题。
解决方案
要发送一个数组,您必须构造一个适当对象的集合。我假设您的原型看起来像这样:
message EventProfile {
repeated Event events = 1;
}
message Event {
string title = 1;
}
message EventResponse {}
service EventService {
rpc sendEvent(EventProfile) returns (EventResponse) {}
}
然后从proto发送生成代码后可以这样实现:
let myEvents = [{title:"Title A"}, {title:"Title B"}]; // example of data you want to send collected in the app
let client = new EventServiceClient("http://localhost:8000", null, null); // example of client setup
let protoEventsList = [];
myEvents.forEach((event) => {
let protoEvent = new Event();
protoEvent.setTitle(event.title);
protoEventsList.push(protoEvent);
})
let request = new EventProfile();
request.setEventsList(protoEventsList);
client.sendEvent(request, {}, () => {
console.log("Done");
})
推荐阅读
- javascript - 在 Shiny R 中显示 ggiraph 图的叠加页面 onclick
- c++ - 是否可以在 softAP ssid 中使用 ESP32 的 mac 地址?
- java - 糟糕的 SQL 语法
- python - 置换矩阵的单行或单列
- ceph - ceph orch host 添加主机问题 (env: centos8, ceph:12.2.5)
- puppeteer - 如何限制 puppeteer 浏览器的内存使用
- sql - 查询以查找之间的提取时间
- c++ - 无法创建简单的彩色窗口(OpenGL、GLFW、GLEW)
- php - 在 Nginx 中将 /file-name 重定向到 file-name.php
- javascript - 在 js 中使用 next 克隆元素