我对活动指标有疑问。
在我的注册页面中,当单击注册按钮时,我放入了一个加载器。现在有一个问题,如果有人在字段中插入数据进行注册,而其中一些数据是错误的,但是单击注册按钮,则加载程序中的按钮将发生更改,但无法再单击它。唯一的解决方案是回到家中,然后在页面中再次进行注册。我该怎么办?
所以问题在于单击按钮时,因为即使更改了数据,如果某些字段错误,也无法注册,因为密钥已变成了加载器。
<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>
非常感谢您:)
答案 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),则它们具有接受加载参数的按钮组件,您可以轻松地进行切换。