我不能在react-native应用程序(使用expo工具构建)中使用buffer。
我有一个十六进制的地理点值,例如-〉0101000020E61000003868AF3E1E0A494046B3B27DC8F73640
,我试图用以下代码将其解码为经度和纬度-〉
import WktParser from 'terraformer-wkt-parser';
import wkx from 'wkx';
import wellknown from 'wellknown';
import { Buffer } from 'buffer';
const wkb = new Buffer.from(point, 'hex');
const wkt = wkx.Geometry.parse(wkb).toWkt();
const parsedPoint = WktParser.parse(wellknown.stringify(wkt));
const longitude = parseFloat(parsedPoint.coordinates[0]);
const latitude = parseFloat(parsedPoint.coordinates[1]);
return [latitude, longitude];
但是在包中遇到这样的缓冲区错误-〉ReferenceError: Can't find variable: Buffer
。json我有-〉
"terraformer-wkt-parser": "^1.2.1",
"util": "^0.12.5",
"wellknown": "^0.5.0",
"wkx": "^0.5.0"
"buffer": "^6.0.3",
"expo": "~47.0.12",
我也试过其他的图书馆,结果也是一样。先谢谢你的帮助🙂
1条答案
按热度按时间nvbavucw1#
要使用
Expo
中的缓冲区模块,必须使用expo install buffer
命令安装它。但是,由于
Expo
默认不支持缓冲区模块,执行expo install buffer
命令可能会导致错误,例如“在当前配置的寄存器中未找到包‘缓冲区’”。在这种情况下,您可以通过安装
react-native-crypto
包来使用Buffer
API。但是,由于
Expo
不支持react-native-crypto
,您可能需要通过弹出Expo
来使用裸工作流。编辑
我的答案不是关于
buffer
,我写了额外的答案@matek评论问题。可以使用
base64
编码