如何在 React Native 中将 Menu Popup 与 TouchableOpacity 相结合?
How to combine Menu Popup with TouchableOpacity in React Native?
我使用弹出式菜单。我想知道我应该把 TouchableOpacity 放在哪里,所以当我按下它时,会显示一个菜单
这是 TouchableOpacity
或者有没有办法设置菜单提供程序/上下文的样式,使其像按钮一样交互?
import React, { Component } from 'react';
import { Text, View, StyleSheet } from 'react-native';
import { Constants } from 'expo';
import {
MenuContext,
Menu,
MenuOptions,
MenuOption,
MenuTrigger,
} from 'react-native-popup-menu';
export default class App extends Component {
render() {
return (
<MenuContext style={styles.container}>
<View>
<Menu>
<MenuTrigger text="Select action" />
<MenuOptions>
<MenuOption onSelect={() => alert(`Save`)} text="Save" />
<MenuOption onSelect={() => alert(`Delete`)}>
<Text style={{ color: 'red' }}>Delete</Text>
</MenuOption>
<MenuOption
onSelect={() => alert(`Not called`)}
disabled={true}
text="Disabled"
/>
</MenuOptions>
</Menu>
</View>
</MenuContext>
);
}
}
const styles = StyleSheet.create({
container: {
flex: 1,
alignItems: 'center',
justifyContent: 'center',
paddingTop: Constants.statusBarHeight,
backgroundColor: '#ecf0f1',
},
paragraph: {
margin: 24,
fontSize: 18,
fontWeight: 'bold',
textAlign: 'center',
color: '#34495e',
},
});
这是你想要的方式吗?
如果要添加TouchableOpacity
,可以在View
中使用。
<MenuContext style={styles.container}>
<View>
<Menu>
<MenuTrigger text="Select action" />
<MenuOptions>
<MenuOption onSelect={() => alert(`Save`)} text="Save" />
<MenuOption onSelect={() => alert(`Delete`)}>
<Text style={{ color: 'red' }}>Delete</Text>
</MenuOption>
<MenuOption
onSelect={() => alert(`Not called`)}
disabled={true}
text="Disabled"
/>
</MenuOptions>
</Menu>
<TouchableOpacity onPress={()=> alert("TouchableOpacity")} style={{width:"100%",backgroundColor:"green",alignItems:"center"}}>
<Text> Login </Text>
</TouchableOpacity>
</View>
</MenuContext>
我使用弹出式菜单。我想知道我应该把 TouchableOpacity 放在哪里,所以当我按下它时,会显示一个菜单
这是 TouchableOpacity
或者有没有办法设置菜单提供程序/上下文的样式,使其像按钮一样交互?
import React, { Component } from 'react';
import { Text, View, StyleSheet } from 'react-native';
import { Constants } from 'expo';
import {
MenuContext,
Menu,
MenuOptions,
MenuOption,
MenuTrigger,
} from 'react-native-popup-menu';
export default class App extends Component {
render() {
return (
<MenuContext style={styles.container}>
<View>
<Menu>
<MenuTrigger text="Select action" />
<MenuOptions>
<MenuOption onSelect={() => alert(`Save`)} text="Save" />
<MenuOption onSelect={() => alert(`Delete`)}>
<Text style={{ color: 'red' }}>Delete</Text>
</MenuOption>
<MenuOption
onSelect={() => alert(`Not called`)}
disabled={true}
text="Disabled"
/>
</MenuOptions>
</Menu>
</View>
</MenuContext>
);
}
}
const styles = StyleSheet.create({
container: {
flex: 1,
alignItems: 'center',
justifyContent: 'center',
paddingTop: Constants.statusBarHeight,
backgroundColor: '#ecf0f1',
},
paragraph: {
margin: 24,
fontSize: 18,
fontWeight: 'bold',
textAlign: 'center',
color: '#34495e',
},
});
这是你想要的方式吗?
如果要添加TouchableOpacity
,可以在View
中使用。
<MenuContext style={styles.container}>
<View>
<Menu>
<MenuTrigger text="Select action" />
<MenuOptions>
<MenuOption onSelect={() => alert(`Save`)} text="Save" />
<MenuOption onSelect={() => alert(`Delete`)}>
<Text style={{ color: 'red' }}>Delete</Text>
</MenuOption>
<MenuOption
onSelect={() => alert(`Not called`)}
disabled={true}
text="Disabled"
/>
</MenuOptions>
</Menu>
<TouchableOpacity onPress={()=> alert("TouchableOpacity")} style={{width:"100%",backgroundColor:"green",alignItems:"center"}}>
<Text> Login </Text>
</TouchableOpacity>
</View>
</MenuContext>