Да, обычно это происходит, если у вас много компонентов для рендеринга.Реагирующая навигация ожидает установки компонента и затем переключается на экран.Например, если для отображения всех компонентов на экране потребуется 2 секунды.Затем, чтобы перейти к этому экрану, реагирующая навигация займет 2 секунды.Есть способ уменьшить время, чтобы перейти к следующему экрану.Вы можете использовать intreractionManager
или Вы можете сделать что-то вроде
Сначала сохраните ваше состояние, скажем, loading
в true.И в вашем componentDidMount()
Вы можете написать что-то вроде:
setTimeout(() => this.setState({ loading: false }), 0);
И в вашей функции рендеринга, в родительском представлении, сделайте условный рендеринг, например
{this.state.loading && <View>
... your components
</View>}
При таком подходе,Компонент будет монтироваться быстро, так как componentDidMount()
будет быстро разрешен, так как компоненту нечего визуализироватьТакже, если вы используете flatlist
или listview
, вы можете назначить опору initialRender
на 3 или что-то подобное, чтобы уменьшить время загрузки.Так.первоначально отображать только одно пустое представление, а после этого отображать все остальное.