react-native: Показать / скрыть просмотр по переменным в рендере вместо состояний (setTimeout) - PullRequest
0 голосов
/ 07 мая 2020

Вот мой render() метод

render() {
    let { enableGo } = this.props;
    console.log("value enable go", enableGo);
    let { activeTab } = this.state;
    let toastText;
    let showToast;
    switch (enableGo) {
      case true:
        showToast = true;
        toastText = "Signup Completed!";
        break;
      case false:
        toastText = "Signing up...Please wait";
        showToast = true;
        break;
    }
.... 

Я собирался показать и скрыть <View/> на основе enable Go prop

  {showToast && (
              <View
                style={{
                  borderRadius: scale(20),
                  width: scale(150),
                  alignItems: "center",
                  justifyContent: "center",
                  height: verticalScale(25),
                  flexDirection: "row",
                }}
              >
                <Text style={{ color: 'red', fontSize: 12 }}>
                  {toastText}
                </Text>
                {!toastText === "Signup Completed" && (
                  <Spinner color='red' size="small" />
                )}
              </View>
            )}
....

Я закончил с тем, что <View/> не скрывается после изменения текста, а showToast становится undefined.

Как сначала изменить текст, а затем скрыть View с опозданием?

1 Ответ

2 голосов
/ 07 мая 2020

Вам не нужна переменная showToast, поскольку вы можете выполнить условный рендеринг только с помощью enable Go. Измените текст также условно, используя enable Go внутри. оберните весь View внутри другого вида и поместите счетчик внутри родительского View. добавьте setInterval для дочернего View. Думаю, это решит проблему.

...