React Native: проблема с производительностью при использовании `pop ()` или `goBack ()`, вызывающая бесконечный цикл. Но использование `reset` хорошо - PullRequest
0 голосов
/ 09 января 2019

Я испытываю странную проблему с моим приложением, когда вызов goBack() или pop() заставляет приложение забирать всю мою оперативную память и становится непригодным для использования, и в ней появляются признаки бесконечного цикла. Когда я смотрю на оперативную память (после включения show perf monitor), она показывает, что моя оперативная память исчерпана до того момента, когда приложение станет непригодным для использования.

Мои экраны выглядят так:


    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.

Как я могу отлаживать то, что вызывает мой бесконечный цикл? При переходе на ScreenB без goBack проблем с производительностью нет.

1 Ответ

0 голосов
/ 09 января 2019

Кажется, проблема в том, что у меня есть onEndEditing на TextInput в ScreenB! По какой-то причине это вызывает бесконечный цикл в сочетании с goBack!

...