Buenos días. Tengo una aplicación creada a través de create-react-app y estoy tratando de crear un decodificador para covid greenpass. Tengo un problema con la decodificación base45. Provoca un error como este:
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)
Aquí está el código. Alguna idea de cómo solucionar este problema?
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;
Esto es de una respuesta anterior aquí:
Instale el paquete de búfer del navegador:
npm install --save buffer
Importarlo y usarlo directamente, ejemplo:
import {Buffer} from 'buffer'; Buffer.from('anything','base64');
árbitro:
Error de referencia no capturado: el búfer no está definido en React
Resolví esto degradando "react-scripts": "5.0.0"
a "react-scripts": "4.0.3"
en package.json
y ejecutando npm install
. Pero creo que hay una solución mucho mejor.