如何解决当用户导航到本机应用程序中的第二个选项卡时,一个选项卡中关闭的“警报”会重新打开
在我的 react-native 应用程序中,我有一个导入三个不同选项卡视图的屏幕。我遇到的一个问题是,在其中一个选项卡上 - SessionsTab
选项卡 - 如果执行某个用户操作,我会弹出一个 alert
。
现在,问题是,如果用户关闭 alert
标签中的 SessionsTab
,然后导航到 DetailsTab
标签,alert
会重新打开/重新出现,必须再次单击它才能清除它。我怎样才能防止这种情况发生?
注意:我使用 react-native-tab-view
作为标签。
这是我在屏幕中用来呈现选项卡的代码:
render() {
return (
<SafeAreaView style={styles.layout.safeAreaView}>
<View style={styles.layout.flexColumn}>
<View style={styles.subHeader.container}>
<View style={styles.subHeader.subContainer}>
<Text style={styles.subHeader.service}>{convertService(this.props.client?.service)}</Text>
<TextInput
style={styles.subHeader.heroText}
placeholder="Tap here to share something about this client."
placeholderTextColor={styles.colors.textPlaceholder}
maxLength={50}
onChangeText={(text) => this.props.updateheronote(this.props.client?.id,text)}
value={this.props.client?.heronote ? this.props.client?.heronote?.value || '' : ''}
/>
<View style={styles.subHeader.details}>
<View style={styles.layout.flexRow}>
<FontAwesome name='language' size={15} color={styles.colors.textInverse} style={{ marginRight: 10 }} />
<Text style={{
color: styles.colors.textInverse,fontSize: 15,}}>{this.props.client?.primaryLanguage}</Text>
</View>
<View style={styles.layout.flexRowJustifyEnd}>
<FontAwesome name='birthday-cake' size={15} color={styles.colors.textInverse} style={{ marginRight: 10 }} />
<Text style={{
color: styles.colors.textInverse,}}>{moment(this.props.client?.dateOfBirth).format('MMM Do YYYY')}</Text>
</View>
</View>
</View>
</View>
<View
style={{
height: 5,backgroundColor: styles.colors.primary,}}
/>
<TabView
swipeEnabled={false}
navigationState={this.state}
renderScene={SceneMap({
sessions: () => SessionsTab(this.props),details: () => DetailsTab(this.props),goals: () => GoalsTab(this.props),})}
onIndexChange={index => this.setState({ index })}
renderTabBar={this.renderTabBar}
tabBarPosition='bottom'
initialLayout={{ flex: 1 }}
/>
</View>
</SafeAreaView>
);
}
}
示例 alert
如下所示:
Alert.alert(
'Out of Sessions','There are no sessions available for this client.',[
{
text: 'Cancel',onPress: () => { },style: 'cancel',},{
text: 'Create Session',onPress: async () => {
await createSession(option.customKey,props);
},],{cancelable: false},);
return;
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。