首页 > 解决方案 > 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时没有性能问题。

标签: androidiosreact-nativereact-navigationreact-native-navigation

解决方案


问题似乎是我在 ScreenB 的 TextInput 上有一个 onEndEditing !由于某种原因,当与 goBack 结合使用时会导致无限循环!


推荐阅读