You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React Native中Buffer.from is not a function错误排查与解决

解决React Native中Buffer.from(...) is not a function错误

核心原因分析

你的代码中Buffer的导入语句被注释掉了,导致Buffer变量未被正确定义,调用Buffer.from时自然会触发"is not a function"错误。另外,React Native运行环境并非Node.js,默认不内置Node核心模块(如buffer),即使安装了buffer包,也需要正确导入或全局配置才能正常使用。

解决步骤

1. 正确导入Buffer

首先取消注释并修正Buffer的导入代码:

// ES6导入方式(推荐)
import { Buffer } from 'buffer';

// 或者CommonJS方式
const { Buffer } = require('buffer');

确保已经执行过npm install buffer(你已安装6.0.3版本,这一步可以跳过)。

2. 配置Metro识别Buffer模块

如果导入后仍报错,需要在metro.config.js中添加配置,让Metro正确解析buffer模块:

const { getDefaultConfig, mergeConfig } = require('@react-native/metro-config');

module.exports = mergeConfig(getDefaultConfig(__dirname), {
  resolver: {
    extraNodeModules: {
      buffer: require.resolve('buffer'),
    },
  },
});

修改完成后,重启Metro服务(执行npx react-native start --reset-cache)。

3. 降级Buffer版本(兼容性备选)

若6.0.3版本与React Native 0.70.5存在兼容性问题,尝试降级到稳定的5.x版本:

npm uninstall buffer
npm install buffer@5.6.0

4. 全局注入Buffer(可选)

如果项目多处需要使用Buffer,可以在入口文件(如index.js)中全局注入,避免重复导入:

import { Buffer } from 'buffer';
global.Buffer = Buffer;

内容的提问来源于stack exchange,提问作者fhidiroglu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 06:02:07