there is no route defined for key Agreement(react native bug记录)
调试react native的项目有一个报错:
there is no route defined for key XXXX
它发生在我调试TabNavigator选项卡路由器的时候,我把如下代码的Agreement路由转移到了另一个StackNavigator中。明明我在HomeStack中定义好了呀。
const TabsNavigator=createBottomTabNavigator({
Home:{
screen:HomeStack
},
Second:{
screen:SecondPage
},
Video:{
screen:VideoPage,
},
Auction:{
screen:AuctionPage
},
Center:{
screen:CenterPage
},
/*Agreement:{
screen:AgreementPage
}*/
},{}})
const HomeStack=createStackNavigator({
Home:{
screen:HomePage
},
Agreement:{
screen:AgreementPage
},
//Agreement转移到这里
}
其实原因跟我们的代码关系不大,它是
react navigation官网上的警告是这么说的:
警告:Route/Router 定义更改
当你的应用程序代码更改为在导航状态下支持给定路线的新路线或不同路线时,应用程序可能会在呈现旧导航状态时中断。 在重新配置路由器和导航层次结构时,这可能会在开发期间定期发生。 但是当你发布一个新版本的应用程序时,它也可能在生产中发生! 保守的行为是在应用程序更新后擦除导航状态。 最简单的方法是为你发布给用户的每个版本引用不同的持久性密钥。 React Navigation 使用 React 的componentDidCatch功能试图减轻由路由定义更改引起的崩溃,但这被认为是实验性的,可能无法捕获所有错误。
划重点,重新配置导航的层次结构时会发生bug。所以我们先擦除持久化的代码,这个时候就不会报错了。
return <Provider store={store}>
<AppContainer/>
</Provider>*/
/*return <Provider store={store}>
<AppContainer
persistenceKey={"navigationDEV"}
renderLoadingExperimental={() =>
<ActivityIndicator/>}/>
</Provider>
*/
如果我们还想继续使用持久化state带给我们的开发方便,那么路由改好之后,把persistenceKey的注释放开,重新 npm run start 启动项目就可以回到bug之前的开发中了。
there is no route defined for key Agreement(react native bug记录)的更多相关文章
- 【方法1】删除Map中Value反复的记录,而且仅仅保留Key最小的那条记录
介绍 晚上无聊的时候,我做了一个測试题,測试题的大体意思是:删除Map中Value反复的记录,而且仅仅保留Key最小的那条记录. 比如: I have a map with duplicate val ...
- vue中:key 和react 中key={} 的作用,以及ref的特性?
vue中:key 和react 中key={} 为了给 vue 或者react 一个提示,以便它能跟踪每个节点的身份,从而重用和重新排序现有元素,你需要为每项提供一个唯一 key 属性 一句话概括就是 ...
- SQL:获取每个key下最新创建的记录
今天遇到了一个好玩的问题 问题: 有一个含有key和createdTime字段的表,表里存在很多不同的key值,每个key值下有很多记录. 我想要查出每个key下面cratedTime最大的记录,即每 ...
- 【方法2】删除Map中Value反复的记录,而且仅仅保留Key最小的那条记录
依据guigui111111的建议:先把Map按Key从大到小排序,然后再把Key和Value互换.这也是一种非常好的思路,我写了一下代码,顺便贴上来,供大家參考与分享. package shuai. ...
- Kafka:ZK+Kafka+Spark Streaming集群环境搭建(二十五)Structured Streaming:同一个topic中包含一组数据的多个部分,按照key它们拼接为一条记录(以及遇到的问题)。
需求: 目前kafka的topic上有一批数据,这些数据被分配到9个不同的partition中(就是发布时key:{m1,m2,m3,m4...m9},value:{records items}),m ...
- Mysql之1451 - Cannot delete or update a parent row: a foreign key constraint fails...解决办法记录
今天使用delete语句删除一张表中的一条信息时,提示了这么一个错误:1451 - Cannot delete or update a parent row: a foreign key constr ...
- 需求:一个页面中需要用到多个字典数据。用于下拉选项,同时,需要将其保存为json格式。以便于key,value的相互转换。记录在实现过程中踩的坑
本文涉及到的知识: Promise,all()的使用 js处理机制 reduce的用法 map的用法 同步异步 需求: 一个页面中需要用到多个字典数据.用于下拉选项,同时,需要将其保存为json格式. ...
- [置顶] perl脚本中defined,exists和delete关键字的用法和区别
刚学习perl脚本的时候,喜欢频繁使用defined关键字判断一个hash中某个key是否存在,后来程序出了问题才去perl官方文档查看关于defined关键字的准确使用方法.因此,这里我把perl中 ...
- React Route
有幸你能看来我的这篇文章,这篇文章是继React后面写的Reactroute,所以你需要看看我前面整理的React笔记再来看Reactroute可能更容易 All the work we've don ...
随机推荐
- vue+elementui搭建后台管理界面(6登录和菜单权限控制[二])
根据权限计算路由的代码 /** * 通过meta.role判断是否与当前用户权限匹配 * @param roles * @param route */ function hasRoles (roles ...
- linux 的 两种磁盘扩容
当LVM分区空间不足的时候,可以进行扩容.主要的扩容方法有两种: 通过空余的磁盘进行扩容,这个方法比较简单,不会对原有数据有影响.将其他LVM分区空间取出一部分给需要扩容的LVM分区.下面就分别具体介 ...
- 布局优化: <include />、<merge /> 、<ViewStub /> 标签的使用
在布局优化中,Androi的官方提到了这三种布局<include />.<merge />.<ViewStub />,并介绍了这三种布局各有的优势,下面也是简单说一 ...
- pycharm使用(持续更新)
1.Anaconda版本下载 https://repo.continuum.io/archive/
- ubantu使用ssh服务
Secure Shell(SSH)是一种加密网络协议,用于在不安全的网络上安全地运行网络服务.利用SSH可以实现加密并安全地远程登录计算机系统. Ubuntu安装后默认只有ssh客户端,即只能在Ubu ...
- SEO前端篇(二)关键词
首先要SEO的关键词最好放在网站首页index,并且网站域名选用顶级域名,最好是.com.现在很多后缀的域名不能备案,选择域名的时候一定要慎重. 域名解析的主机IP最好选择站点资源少的区域,可以用 爱 ...
- 【LeetCode算法-26】Remove Duplicates from Sorted Array
LeetCode第26题 Given a sorted array nums, remove the duplicates in-place such that each element appear ...
- ---iOS开发 截取字符串中两个指定字符串中间的字符串---
例如,要截取一个字符串中,两个指定字符串中间的字符串,OC截取方法如下: // 要截取 "> 和 </ 之间的汉字内容: @implementationViewControlle ...
- 【Python开发】PyInstaller打包Python程序
PyInstaller是一个能将Python程序转换成单个可执行文件的程序, 操作系统支持Windows, Linux, Mac OS X, Solaris和AIX.并且很多包都支持开箱即用,不依赖环 ...
- 在MAX10上使用DDR3 IP的一个关于DQS/DQSn pin的错误解决办法
MAX10 是Intel FPGA的CPLD中的一个特殊的芯片,因为它内部有CPLD的Flash结构,也有FPGA的Ram结构.具体的可以参考MAX10 Handbook文档. Max10 在外部存储 ...