React Uncaught ReferenceError:缓冲区未定义

Yeh*_*dik 10 mqtt reactjs

我通过运行 npx create-react-app my-app 创建了一个 React 项目

我安装了 mqtt-react-hooks

我添加了应用程序脚本

import { Connector } from 'mqtt-react-hooks';

import Status from './Status';

function App() {
    return (
        <Connector
          brokerUrl="mqtt://127.0.0.1:80/"
          parserMethod={(msg) => msg} // msg is Buffer
        >
          <Status />
        </Connector>
  );
}

export default App;
Run Code Online (Sandbox Code Playgroud)

我在控制台中收到此错误

图像

小智 14

正如此处答案中提到的,还请考虑以下因素:

npm install --save buffer

import {Buffer} from 'buffer';
Run Code Online (Sandbox Code Playgroud)

它在外部库依赖的情况下没有帮助,但在代码中直接使用 Buffer 的情况下可能会避免您恢复其他库。


Muh*_*our 2

我也有这个问题。

最近我创建了一个新版本的 React 应用程序,当我使用 mqtt.js (不是 mqtt-react-hooks )时,显示了这个错误!

我发现Webpack版本5不支持Buffer等。Webpack 5 删除了 Buffer(请参阅信息),有效地破坏了 MQTT 库,因为它在代码中明确使用了它。

所以我降级到 Webpack 4 并且它可以工作。如果您不知道如何操作,此链接可能会有所帮助。 如何降级Webpack版本?