Задержка отображения тернарного оператора React Native из-за запроса ajax - PullRequest
0 голосов
/ 16 июня 2020

У меня есть isRegistered, который я получаю через вызов ajax, поэтому isRegistered требует времени для установки.

        <View style={{ width: '48%' }}>
          <Text style={style.labelStyle}>

            {isRegistered ? 'Attempt' : 'Amount'}

          </Text>
        </View>

В результате я сначала вижу 'Amount' (несколько сотен миллисекунд, поэтому заметна для человека), прежде чем я увижу «Попытку»

Как я могу этого избежать?

Я разрабатываю эмулятор IOS (не устройство), но мне интересно, что это также произойдет на реальном устройстве

1 Ответ

0 голосов
/ 16 июня 2020

Вам нужно будет показать индикатор загрузки и т.д. c. до завершения вызова AJAX, если вы хотите избежать такого поведения.

<View style={{ width: '48%' }}>
  { isLoading && (<View style={{ flex: 1, justifyContent: "center", alignItems: "center"><Text style={style.labelStyle}>{"Loading"}</Text></View> )}

  { !isLoading && (
  <Text style={style.labelStyle}>
    { isRegistered ? 'Attempt' : 'Amount'}
  </Text>
 )}
</View>

Вы можете попробовать сделать этот вызов AJAX заранее на предыдущем экране, чтобы избежать этого поведения.

...