android - React Native:使用 `pop()` 或 `goBack()` 时的性能问题,导致无限循环。但是使用`reset`很好
问题描述
我在我的应用程序中遇到了一个奇怪的问题,调用goBack()
或pop()
使应用程序占用了我的所有 RAM 并变得无法使用,并显示出无限循环的症状。当我查看 RAM(启用 后show perf monitor
)时,它显示我的 RAM 被吃光了,直到应用程序无法使用。
我的屏幕是这样的:
const StacksOverTabs = createStackNavigator(
{
Root: {
screen: TabNav,
headerMode: 'none',
navigationOptions: {
header: null
}
},
ScreenB: {
screen: ScreenB,
},
}
)
我要从 ScreenA 里面TabNav
进入ScreenB
,通过做this.props.navigation.navigate('ScreenB');
,然后在ScreenB
我打电话this.props.navigation.goBack()
。
pop()
如果我使用而不是,问题是一样的goBack()
,但是当我使用StackActions.reset
.
我该如何调试导致我的无限循环的原因?当我去 ScreenBgoBack
时没有性能问题。
解决方案
问题似乎是我在 ScreenB 的 TextInput 上有一个 onEndEditing !由于某种原因,当与 goBack 结合使用时会导致无限循环!
推荐阅读
- ubuntu - Imagick 导致无法从路径 (/tmp/phpjRWxLB) 读取图像
- c# - 出口清单
- > 在 WPF 中使用 C# 转至 Excel
- python - 我没有成功用 Scikit-Learn 和 Python 中的 MLeap 保存(序列化)一个 zip 文件
- php - 如何使用像 xampp 一样的 docker (kitematic) 工作?
- html5-video - 带有 RTSP 流源的 HTML5 视频不在 iPhone ios 13.4 上的 Chrome 中播放,但在 Safari 中工作
- python - 将两个 Pandas DataFrame 组合成一个三维 np.array
- javascript - Angular 在字符串中查找标记并用真实的 html 标记替换
- java - 在服务android中显示自定义警报对话框
- c# - C# xml 序列化结构改变
- javascript - 努力理解这些功能是如何工作的