官方文档中指出 SectionList 本组件继承自PureComponent而非通常的Component,这意味着如果其props在浅比较中是相等的,则不会重新渲染.所以请先检查你的renderItem函数所依赖的props数据(包括data属性以及可能用到的父组件的state),如果是一个引用类型(Object或者数组都是引用类型),则需要先修改其引用地址(比如先复制到一个新的Object或者数组中),然后再修改其值,否则界面很可能不会刷新.(译注:这一段不了解的朋友建议先学习下js中的基本…
React Native之坑总结(持续更新) Genymotion安装与启动 之前我用的是蓝叠(BlueStack)模拟器,跑RN程序也遇到了一些问题,都通过搜索引擎解决了,不过没有记录. 但是BlueStack有一些问题,比如没有菜单键,模拟器默认是横向的,商业化太严重(本来是用来玩游戏的),界面太丑,等等...... 于是我按照RN中文网的推荐下载了Genymotion模拟器,这一下,就是万劫不复...... 我是在官网下载的Genymotion,自带VirtualBox 5.0.4版本.下…
项目背景 在项目的初始阶段,我们需要建立自己的design system,我们spike了一些方案,tailwind-rn就是其中一种,如果有用到或者即将用到tailwind-rn的,可以进来看一看,避免踩坑. 后来觉得项目比较简单,tailwind对新上项目小伙伴确实不太友好,所以我们最终没有采用. 简介 GitHub - vadimdemedes/tailwind-rn: Use Tailwind CSS in React Native projects Tailwind 提倡了原子型的CS…
最近在使用React Native(以下简称RN)中踩了个坑,RN只能异步调用原生方法,所以在原生方法直接调用UI刷新操作需要将任务递交到主线程才可以. RCT_EXPORT_METHOD(finish) { UIViewController *cVC = [UIViewController getTopViewController]; [cVC.navigationController popViewControllerAnimated:YES]; } 调用的时候可以发现,线程并不是主线程.比…
原文连接:http://www.studyshare.cn/blog-front/blog/details/1137 最近做一个app,使用React Native实现,如果严格按照RN官方文档去配置环境并初始化一个全新的项目,一路走下来,基本上是没有问题的. RN截止目前最新版本是0.58,如果之前的项目要在xcode和android studio上运行起来,可能会遇到各种各样的问题. 运行一些版本比较老的开源项目几个注意点: 1.android sdk 环境变量要配置好,具体参考RN官方文档…
应用 1 安卓打包 经验 解决方案 ,官方 解决方案 2 调试 用 React-Native-Debugger 教程 3 微信分享和登录 使用 react-native-wechat    地址 设计图来自蓝狐,可以根据里面的尺寸来进行开发,但是左右的间隔需要通过获取设备宽度减两边来得出, 苹果手机用 爱疯6,  安卓需用自定义尺寸. 在苹果上,默认高度是整个手机的高度:然而安卓默认是除了状态栏以下的高度,我们通过Dimensions获取的高度也是不一样的,也就是说,在安卓手机上获取得到的高度也…
最近在做一个RN项目,有使用到FlatList这样一个RN封装的组件去做上拉加载更多功能,在iOS和Android平台上,总结了以下几个遇到的问题及解决方案 1. 进入页面onReached开始就被触发 解决方案: // 伪代码如下 <FlatList ... onEndReachedThreshold={0.5} ... /> 当onEndReachedThreshold设置大于1时,的确进入页面就触发,设置在0-1之间时按正常逻辑走 2. 上拉加载更多onReached被触发两次,造成重复…
相信和我一样,自己摸索配置环境的过程中,第一次配,很可能就遇到了这个比较简单地错误,没有配置sdk环境 解决办法 在电脑,系统环境变量中,添加一个sdk的环境变量 uploading-image-955548.png 然后在path中新建一个 %ANDROID_PATH%…
问题 在chrome启动debug模式,连接不到地址 解决办法 在模拟器中,ctrl+m调出command,选择dev setting,然后设置debug地址为localhost:8081…
报错 Could not install the app on the device, read the error above for details.Make sure you have an Android emulator running or a device connected and have set up your Android development environment 大概意思就是安装app到设备上失败,请确保您已经运行了一个安卓模拟器,然后输入adb devices提…