React-Native 遇到的错误1. React-Native 部分组件在debug模式下打包在iOS真机上可以显示,但是release模式下打包在iOS真机上不显示2. React-Native

1. React-Native 部分组件在debug模式下打包在iOS真机上可以显示,但是release模式下打包在iOS真机上不显示

显示

不显示

这个问题真的是卡了我好久,只要是打release包,下面的按钮组就是不显示,而release包又不能调试,于是我终于在忍无可忍的情况下,一直不能打包然后一点一点的展示在页面上,来看到底是哪里的问题。终于让我定位到了问题的所在。

问题出在这:

let buttons = [];
children.forEach((child, i) => {
      if (child.type.name === 'FlowSendButton') {
        const buttonConfig = FlowSendButton({
          setShowWriteNotion: this.setShowWriteNotion,
          requireNotion: child.props.requireNotion,
          ...child.props,
        });
        if (this.getShow(child.props)) {
          buttons.push(buttonConfig);
        }
      } else if (child.type.name === 'FlowNotionButton') {...}
...
});

这段代码在release包的情况是,buttons是空的,是由于if (child.type.name === 'FlowSendButton')这是判断根本不会为true,因为在release模式下,child.type根本没有name这个属性,只有在debug模式下才有,所以这样来进行判断的 ,统统不会有true的情况,自然buttons中没有值,也就不会展示了。

下面是我找到的一些文档中的交流:

判断方式

release

debug

if (child.type.displayName === 'FlowCancelDoButton') {}

失效

有效

if (child.type.name === 'FlowCancelDoButton') {}

失效

有效

if (child.type.prototype instanceof FlowCancelDoButton) {}

失效

有效

if (child.type === FlowApproveButton) {}

有效

有效

判断方式一览表

判断方式

release

debug

if (child.type.displayName === 'FlowCancelDoButton') {}

失效

有效

if (child.type.name === 'FlowCancelDoButton') {}

失效

有效

if (child.type.prototype instanceof FlowCancelDoButton) {}

失效

有效

if (child.type === FlowApproveButton) {}

有效

有效

总结

2. React-Native 启动时报错 - “no bundle url present”

原因

我运行了react-native run-android看了一下安卓环境下的图标的样式,然后使用react-native run-ios就报错了no bundle url present这个错误,我什么都没有干啊。

error

图片上的错误就不停,度娘了一下,原来是,因为我开了两个环境吧,可是我把环境都关了,还是不行。

解决

于是我就在iOS模拟器正在运行期间执行了:

npm install
react-native run-ios

zz,一遍还不行,试了两遍才正常了!!!


若干天后,又遇到了这个问题,按照上面的方式试了好多次都不行,只能关机重启,就好了。~~~(>_<)~~~ zz

RawText "/*" must be wrapped in an explicit <Text> component错误

是因为<Text>{test}</Text>中的test被这是为了空字符串'',就会报这个错,要保证test不会被设置为''.

ReactNative js调试时变得很卡

解决办法

把那个chrome的Tab页保持最前,窗口不要最小化就好了。也就是下面这个页面不要关,保持在最前面就好了。

js slow.png

一直报[...effects] has been deprecated in favor of all([...effects]), please update your code这个警告。

解决办法

只需要这样更新代码即可

fix.png

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Keegan小钢

App架构设计经验谈:技术选型

当你做架构设计时,必然会面临技术选型的抉择,不同的技术方案,架构也可能完全不同。有哪些技术选型需要做决策呢?比如,App是纯原生开发,还是Web App,抑或H...

17310
来自专栏Keegan小钢

App项目实战之路(一):概述篇

我计划做一款App产品,包括Android和iOS,做完打算将Android和iOS客户端的代码开源,并将上架到应用宝和AppStore,之后还会不断迭代。而在...

16130
来自专栏移动端周边技术扩展

Axios跨域处理方案

生产与开发环境都配置完成了,开发环境可直接进行跨域请求,生产环境还需要后端进行配合处理

12620
来自专栏iOSer成长记录

iOS-多线程死锁问题

虽然作者在开发中经常会用到多线程,但是对于死锁、线程阻塞等问题还是比较模糊,一般都是先写吧,有问题再改,现在闲下来了,是时候总结一波了,本文主要总结一下同步/异...

10110
来自专栏Keegan小钢

App项目实战之路(四):UI篇

上一篇文章[原型篇]发布之后,就开始设计UI了,包括Icon和界面UI,周一到周五晚上一般花两到三到小时,周六日的时候则有五六个小时,最终用了一个星期多才设计完...

24630
来自专栏iOSDevLog

Apple Developer Program注册时所需的内容

探索 无限可能 针对 Apple 平台进行开发意味着您能够轻松获取最新的 macOS、iOS、watchOS 和 tvOS 技术,这将为您带来无限可能,助您...

21230
来自专栏IT派

不得不说的Telegram : 币圈与链圈的微信

如果让你在「大而全的应用」和「小而美的应用」之间选一个,你会选择哪一个?你可以带着这个问题来阅读这篇软件体验报告,今天的主角是一款 IM 软件:Telegram

45510
来自专栏Keegan小钢

App项目实战之路(五):服务端篇

近一个月因为忙于其他事情,一直没能抽出时间来更新项目进度。现在,只能趁着国庆期间,赶紧抽空更新下进度。这次,我想简单谈谈服务端的一些东西。

25060
来自专栏娱乐心理测试

ios上传appStore所需图片各种尺寸

主要尺寸为(以像素为单位):40 , 60 ,58,87,80,120,180,app store上显示的icon图标尺寸:1024

40130
来自专栏IT派

从“人人都能编程”到“人人都会研发AI”,苹果低调发布的Create ML潜力无穷

WWDC18上,苹果发布了 macOS Mojave,这版操作系统因为加入了对 iOS App 和黑暗模式的支持而显得尤为重要,但是很多人忽略了苹果面向开发者推...

10430

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励