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

使用react-native-popup-menu实现ListView长按弹窗菜单时报错:createContext不是函数

解决React Native中(0 , _react2.createContext) is not a function报错问题

嘿,这个问题我之前也碰到过,咱们一步步来拆解解决它~

报错原因

这个错误本质是react-native-popup-menu组件依赖React的createContext API,但你的React版本低于16.3.0(这个API是在React 16.3.0才正式引入的),或者库的版本和你的React Native环境不兼容,导致调用了不存在的API。

解决方案

1. 升级React到兼容版本

首先检查你当前的React版本:

# npm用户
npm list react
# yarn用户
yarn list react

如果版本低于16.3.0,执行升级命令:

# npm用户
npm install react@^16.3.0 --save
# yarn用户
yarn add react@^16.3.0

⚠️ 注意:升级时要确保React版本和你的React Native版本兼容,可以参考React Native官方的版本对应说明(直接查看项目package.json中RN版本对应的React版本范围即可)。

2. 降级react-native-popup-menu到兼容旧React的版本

如果不想升级React,可以选择降级组件到不依赖createContext的旧版本,比如0.15.10:

# npm用户
npm install react-native-popup-menu@0.15.10 --save
# yarn用户
yarn add react-native-popup-menu@0.15.10

3. 调整你的菜单触发代码

确保openMenu方法正确调用菜单的open方法,示例代码:

openMenu = () => {
  // 通过ref获取菜单实例并调用open方法
  this.menu.open();
};

另外,检查你的组件结构,确保MenuContext包裹了所有菜单相关组件,Menu的ref正确绑定。

4. 清除缓存避免异常

完成依赖调整后,记得清除React Native的缓存:

# npm用户
npm start -- --reset-cache
# yarn用户
yarn start --reset-cache

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 11:05:15