引入新模块或使用 Yarn 进行本地模块更新后, 首次编译需执行:
$ ./app debug src --init
native-base默认下载的 d.ts
文件未能与api同步更新
解决方法:
- 根据 NativeBase 相关文档, 将声明更新到
typings/third-party/native-base.d.ts
- 执行
$ ./app fix native-base
或
$ ./app debug src --init
问题场景:
依赖模块默认加载的 d.ts 文件落后于引入版本, 部分API调用编译失败
解决方法:
- 将模块 d.ts 文件复制到
typings/third-party/
下, 并重命名为[target-module].d.ts
- 根据 模块 相关文档, 将对应接口的声明更新到
typings/third-party/[target-module].d.ts
- 添加对应版本号到 d.ts 中的模块名
Example
declare module 'native-base'
改为
declare module 'native-base@2.2.0'
- 执行
$ ./app fix [target-module]
或
$ ./app debug src --init
"react-native-swiper" - Warning: React.createElement: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: undefined.
react-native-swiper 引入问题
解决方法:
- 执行
$ ./app debug src --init
或
$ ./app compile framework --init
使用 Yarn 进行模块安装或依赖检查时, 会将编译生成的 framework 模块删除
解决方法 - 重新编译 framework
$ ./app debug src --init
或
$ ./app compile framework --init
$ yarn add react-native-fs || npm install react-native-fs --save
$ react-native link react-native-fs
ref - itinance/react-native-fs
- xocde 中 HTTP 请求失败
解决方法:
将info.plist
中的App Transport Security Settings > Allow Arbitrary Loads 设置为 YES
App Transport Security Settings
Allow Arbitrary Loads | Boolean | YES
- 将 图标文件拖入 项目目录中 [ eg -
icon/iconfont.ttf
] info.plist
中的Fonts provided by application
添加 item [i] = 'icon/iconfont.ttf'
Fonts provided by application
item 0 | Array | icon/iconfont.ttf
如果图标文件更新时, Xcode模拟器处于运行状态, 需要进行 rebuild 才能更新图标
新建项目运行 IOS 时报错
解决方法:
- 在 react-native 模块下新建一个名为
scripts
的文件夹 ->./node_modules/react-native/scripts
- 将
./node_modules/react-native/packager
中的文件复制一份到scripts
中, 重新运行 Xcode
- ./app generate - SyntaxError: Unexpected token import
Microsoft/dts-gen 暂未支持 es6
若依赖模块未提供 类型声明文件或 dts-gen
生成失败, 请在 typings/interface.d.ts
文件下手动添加模块声明
添加 react-native-camera
模块声明
typings/interface.d.ts
...
...
declare module "react-native-camera" {
export class Camera {}
export class [...] {}
}
具体声明请根据模块文档或依赖需求进行定义