活动指标加载

时间:2019-10-01 08:01:48

标签: javascript react-native

我对活动指标有疑问。

在我的注册页面中,当单击注册按钮时,我放入了一个加载器。现在有一个问题,如果有人在字段中插入数据进行注册,而其中一些数据是错误的,但是单击注册按钮,则加载程序中的按钮将发生更改,但无法再单击它。唯一的解决方案是回到家中,然后在页面中再次进行注册。我该怎么办?

所以问题在于单击按钮时,因为即使更改了数据,如果某些字段错误,也无法注册,因为密钥已变成了加载器。

<View style={style.inputContainer}>
            <TextInput
              style={style.inputs}
              placeholder="Email"
              placeholderTextColor="#56cbbe"
              keyboardType="email-address"
              underlineColorAndroid="grey"
              onChangeText={Email => this.setState({ Email })}
            />
          </View>
          <View style={style.inputContainer}>
            <TextInput
              style={[style.inputs]}
              placeholder="Password"
              placeholderTextColor="#56cbbe"
              secureTextEntry={true}
              underlineColorAndroid="grey"
              onChangeText={Password => this.setState({ Password })}
            />
          </View>
          <View style={style.inputContainer}>
            <TextInput
              style={style.inputs}
              placeholder="Verifica Password"
              placeholderTextColor="#56cbbe"
              secureTextEntry={true}
              underlineColorAndroid="grey"
              onChangeText={PasswordRepeat => this.setState({ PasswordRepeat })}
            />
          </View>
          <View style={style.footer}>
          {(!this.state.isLoading) ? <TouchableOpacity
              style={[style.button, style.buttonOK]}
              onPress={() => this.showLoader()}
            >
              <Text style={[style.buttonTesto]}>Signup</Text>
            </TouchableOpacity> : <ActivityIndicator animating={this.state.isLoading} size="large" color="#56cbbe" />}  // IT'S here!
          </View>
        </KeyboardAwareScrollView>

非常感谢您:)

1 个答案:

答案 0 :(得分:3)

一种快速的解决方法是,只要textInput发生更改,就检查您的加载状态。

            <TextInput
              style={[style.inputs]}
              placeholder="Password"
              placeholderTextColor="#56cbbe"
              secureTextEntry={true}
              underlineColorAndroid="grey"
              onChangeText={ (Password) => {
                this.state.isLoading 
                ? 
                this.setState({ Password, isLoading: false })
                :
                this.setState({ Password })  
              }}
            />

此代码未经测试,但可以正常工作。对其余输入字段执行相同的操作。

或者,如果您正在使用UI库(例如react-native-paper),则它们具有接受加载参数的按钮组件,您可以轻松地进行切换。