react-native - 反应原生按钮 onpress 显示 2 个新按钮并使其他内容不可点击
问题描述
我想在按下 FloatingButton 后,再显示 2 个按钮。虽然我显示了这 2 个按钮,但我想让此页面的其余部分无法点击,用户必须按下其中一个按钮才能继续导航。这是我的代码:
import React from 'react';
import { StyleSheet, Text, View, ScrollView } from 'react-native';
import FloatingButton from '../components/FloatingButton';
const DuellScreen = () => {
return (
<View style={{ flex: 1 }}>
<ScrollView style={styles.container2}>
<Text style={{ flex: 1 }}>body</Text>
</ScrollView>
<View style={styles.container}>
<FloatingButton/>
</View>
</View>
)
}
const styles = StyleSheet.create({
container: {
padding: 16,
flex: 1,
backgroundColor: '#fff',
justifyContent: 'flex-end',
alignItems: 'center'
},
container2: {
padding: 16,
flex: 5,
backgroundColor: '#fff',
},
});
export default DuellScreen
我该怎么做,尤其是在 buttonpress + 后可见的 2 按钮使其他东西无法点击?
解决方案
这个怎么样:
import React, { useState } from 'react';
import { StyleSheet, Text, View, ScrollView } from 'react-native';
import FloatingButton from '../components/FloatingButton';
const DuellScreen = (props) => {
const [active, setActive] = useState(true);
return (
<View style={{ flex: 1 }}>
<ScrollView style={styles.container2}>
<Text style={{ flex: 1 }}>body</Text>
</ScrollView>
<View style={styles.container}>
<FloatingButton onPress={active ? () => setActive(false) : () => {} } />
{!active ?
<View>
<FloatingButton onPress={() => props.navigation.navigate('OtherScreen')} />
<FloatingButton onPress={() => props.navigation.navigate('AnotherScreen')} />
</View>
: null}
</View>
</View>
)
}
推荐阅读
- node.js - 您如何在 Heroku 应用程序上快速工作?
- sap-successfactors - SuccessFactors 的身份验证并获取所有实体
- rust - 为什么动态闭包(作为特征对象的闭包)在放置 Rc 后变得不可用
>? - xaml - 将第一个元素设置为 x:Null(一个 Xaml 问题)
- python - 如何在 Django 的项目文件夹中创建数据库?
- vue.js - 在 Vue 中过滤嵌套循环
- mysql - SQL - 在 FIND_IN_SET 函数中使用变量时“非法混合排序规则”
- google-apps-script - Google Apps Script TextFinder startFrom 不是从
- sql - 如何在VB中从SQL返回一个数组?
- php - 如果我们抛出一个没有被再次捕获的异常,我们会得到一个空的响应状态吗?