0

再会。我有通过 create-react-app 创建的应用程序,我正在尝试为 covid greenpass 创建解码器。我对 base45 解码有疑问。它会导致如下错误:

base45-js.js:60 Uncaught ReferenceError: Buffer is not defined
    at Object.decode (base45-js.js:60:1)
    at CovidPass (CovidPass.js:10:1)
    at renderWithHooks (react-dom.development.js:14985:1)
    at mountIndeterminateComponent (react-dom.development.js:17811:1)
    at beginWork (react-dom.development.js:19049:1)
    at HTMLUnknownElement.callCallback (react-dom.development.js:3945:1)
    at Object.invokeGuardedCallbackDev (react-dom.development.js:3994:1)
    at invokeGuardedCallback (react-dom.development.js:4056:1)
    at beginWork$1 (react-dom.development.js:23964:1)
    at performUnitOfWork (react-dom.development.js:22776:1)

这是代码。任何想法如何解决这一问题?

import React from 'react';
import cbor from 'cbor-web';
import base45 from 'base45';
import pako from 'pako';   

const CovidPass = () => {
    const decodedBase45 = base45.decode('I2B-KEP2');
    console.log(decodedBase45);

    return (
        <p>{decodedBase45}</p>
    );
}

export default CovidPass;
4

2 回答 2

0

我通过降级"react-scripts": "5.0.0""react-scripts": "4.0.3"inpackage.json和运行解决了这个问题npm install。但我认为有更好的解决方案。

于 2022-01-19T10:16:15.893 回答
0

这是来自这里的旧答案:

安装浏览器缓冲包:

npm install --save buffer

导入后直接使用,例如:

import {Buffer} from 'buffer';
Buffer.from('anything','base64');

ref:
Uncaught ReferenceError: Buffer 没有在 React 中定义

于 2022-01-18T12:49:03.537 回答