开启辅助访问
 找回密码
 注册帐号

扫一扫,访问微社区

蛮牛译馆

关注:531

当前位置:游戏蛮牛 技术专区 蛮牛译馆

查看: 464|回复: 2

[外文翻译] 在Android开发中,为什么React Native 必须要onRequestClose 回调函数?

[复制链接]  [移动端链接]
排名
19848
昨日变化
8

16

主题

86

帖子

267

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
156801
好友
1
蛮牛币
424
威望
0
注册时间
2016-7-15
在线时间
135 小时
最后登录
2017-5-27
发表于 2017-4-10 11:22:53 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?注册帐号

x
本帖最后由 204有个大坑 于 2017-4-10 11:22 编辑

      我已经花了大量的时间在Rect Native上,大部分时间是用在性能或者个人需求的快速工具上。常遇到的一个事情是Modal组件貌似不能缺少,我常想在设备上Modal需要一个onRequestClose 回调函数真的好奇怪。无论如何,需要属性都不奇怪,但事实上这个属性只有Android才有,这正是我想说的独特的地方。文档上只是做了简单的描述:
The onRequestClose prop allows passing a function that will be called once the modal has been dismissed.On the Android platform, this is a required function.
译:onRequestClose prop 允许传入一个函数,一旦Modal被移除时,这个函数就会被调用。在Android平台,这是一个必要的函数。

对于这样一个必要真的没什么解释,只要按照要求简单传入一个空函数就可以了。然而在最近的几次使用Modal以及实现 BackAndroid事件来关闭Modal之后,我又突然想起 Android设备通常有物理按键而IOS设备没有--难道这就是回调函数必需的原因?可以肯定,一个快速的测试如下:
// render()<Modal
    visible={this.state.modalVisible}
    onRequestClose={_closeModal.bind(this)} />
// Elsewhere...
_closeModal() {
    setState({
        modalVisible: false
    });}
Modal确定是可见时,点击设备上的物理返回按键,modal并没有执行我们自定义的BackAndroid逻辑就关闭了。

        我不敢完全确定onRequestClose 是否真的只执行这一次,以及是否在IOS上也一样,但这似乎是我唯一能够找到为什么在Android上是必要的的原因,可以说一个快速峰值的源代码看起来好像只是在Android上被调用。假设这是在IOS设备上,你就不能像文档所描述的那样依赖于这些代码来作为关闭事件的回调。
      巧的是,当我写这篇文章的时候,我正准备将请求提交到文档中心时,有人在12小时之前已经抢先提交了。

原文作者:Written by @kylewbanks on Nov 12, 2016.
原文连接:https://kylewbanks.com/blog/why-react-native-modals-require-onrequestclose-callback-property-on-android

扫描下方二维码关注游戏蛮牛官方微信~每日都有精选干货与你分享哟~

本文由蛮牛译馆倾情奉献,翻译:204有个大坑,如果问题请及时联系,除合作社区及合作媒体外,禁止转载。


回复

使用道具 举报

排名
46663
昨日变化
22

0

主题

11

帖子

13

积分

Rank: 1

UID
217344
好友
0
蛮牛币
5
威望
0
注册时间
2017-4-12
在线时间
0 小时
最后登录
2017-4-12
发表于 2017-4-12 13:51:06 | 显示全部楼层
为了学习

回复

使用道具 举报

排名
34871
昨日变化
17

0

主题

47

帖子

51

积分

Rank: 2Rank: 2

UID
218693
好友
0
蛮牛币
65
威望
0
注册时间
2017-4-20
在线时间
3 小时
最后登录
2017-4-22
发表于 2017-4-21 14:28:51 | 显示全部楼层
当Modal确定是可见时,点击设备上的物理返回按键,modal并没有执行我们自定义的BackAndroid逻辑就关闭了。效果不错的

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册帐号

本版积分规则

快速回复 返回顶部 返回列表