因公司业务发展,决定将公司主要业务模块用ReactNative来开发,其他模块使用原生,于是我又重新开始了自己的ReactNative学习之路,此文记录在开发过程中遇到的问题。
1.ReactNative 真机上调试报错 could not connect to development server
原因:原先jsCodeLocation的地址是 http://localhost:8081/index.bundle?platform=ios&dev=true 。 localhost指向的不一定是本机的正确地址
解决方案:修改为 http://本机ip地址:8081/index.bundle?platform=ios&dev=true
- ReactNative iOS报错Module
react
does not exist in the Haste module map
原因 react模块并没有正确的加进去
解决方案 运行yarn add react
3。ReactNative 报错 Invariant Violation:Element type isinvalid expect a string
原因:类别导出时错误了
解决方案:
修改class YourApp extends Component {
修改后export default class YourApp extends Component<{}> {
4.「React Native」antdDesign 报错 Unrecognized font family 'antoutline'
原因:没有导入字体库
解决方案 react-native link @ant-design/icons-react-native
重新运行还是出现这个报错。就打开Xcode重新编译 因为运行在手机上的app 是并没有将字体库打包的原始版本。
5.ReactNative Realm数据库存储类型
参数类型有7种,bool,int,float,double,string,data,date
注意的点
其中 data 是 ArrayBuffer,具体是什么我还不太清楚,不过这个并不是数组的意思。
必填属性保存的时候不支持 null 或者 undefined,选填属性可以保存这两种类型的值,因此如果在赋值时有可能属于这些值时,应该先做好判断,否则会抛出异常
选填属性用 optional 或者在类型后给个 ? 来做表示
6.Realm的addlistener方法始终不起作用
原因:没有能正确调用更新插入的方法。看文档 之后修复
7.setstate之后 组件的状态不变更
原因。在组件propTypes中获取到外面传来的参数之后再次赋值给了state 其实数据依赖于外界 所以组件内部的state无法变更状态。
网友评论