引入react-native-sqlite-storage后提示无法解析react-native模块怎么办
问题根因
- 你当前的项目是通过Create React App生成的纯Web React项目,而非React Native移动端项目。
react-native-sqlite-storage是专为iOS/Android端React Native应用开发的原生依赖库,依赖React Native运行环境,无法在Web浏览器环境中运行。 - 你的
package.json中未安装react-native核心依赖,因此库加载时会提示找不到react-native模块。同时你代码中使用的View、Text、Button都是React Native专属组件,Web环境也无法识别。
解决方案
根据你的实际开发需求选择对应方案:
方案1:开发React Native移动端应用
你需要重新初始化符合要求的React Native项目:
- 先完成React Native开发环境配置,安装好Node、JDK、Android Studio(适配安卓)或Xcode(适配iOS)
- 执行命令初始化原生React Native项目:
npx react-native init SQLiteDemo,不要使用Create React App初始化项目 - 进入项目目录后安装对应依赖:
npm install react-native-sqlite-storage --save - React Native 0.60+版本支持自动link,无需手动执行link操作,旧版本可执行
npx react-native link react-native-sqlite-storage完成原生关联 - 将现有业务逻辑迁移到新的RN项目中,使用
npx react-native run-android或npx react-native run-ios启动移动端模拟器/真机调试,不要使用yarn start启动Web服务。
方案2:开发Web端React应用
你需要替换为Web环境支持的本地存储方案,无法使用react-native-sqlite-storage:
- 卸载当前不兼容的依赖:
npm uninstall react-native-sqlite-storage - 选择Web端可用的SQLite方案:推荐使用
sql.js(SQLite编译为WebAssembly的纯前端实现),也可根据需求选择浏览器原生的IndexedDB做本地存储 - 安装
sql.js依赖:npm install sql.js - 将代码中
View、Text、Button等React Native组件替换为Web端可用的HTML元素或Web组件库组件,按照sql.js的使用说明实现增删改查逻辑即可。
注意:React Web项目和React Native项目的运行环境完全不兼容,不要尝试在Web项目中运行React Native专属的组件和第三方依赖。
内容的提问来源于stack exchange,提问作者ac progress
相关产品推荐
相关产品推荐

