[英]react native: What is the way to change the alert to modal?
将警报更改为模态的方法是什么? 在我的示例中,我尝试进行更改,但它说它不知道item.codeName
和setModalVisible
, modalVisible
。 我很乐意支持这个问题
function firstButton(item) {
Alert.alert({item.codeName},
[{ text: 'ok, style: 'cancel', onPress: async () => { } }],
{ cancelable: false });
}
到这个模式:
function firstButton(item) {
return (
<View style={styles.centeredView}>
<Modal animationType="slide" transparent={true} visible={modalVisible}>
<View style={styles.centeredView}>
<View style={styles.modalView}>
<Text style={styles.modalText}>
{item.codeName}
</Text>
<View
style={{
flexDirection: 'row',
justifyContent: 'space-evenly',
alignContent: 'space-between',
}}
>
<TouchableWithoutFeedback
onPress={() => {
setModalVisible(!modalVisible);
}}
>
<View style={{ top: 20, marginHorizontal: 10 }}>
<LinearGradient
colors={['#4c669f', '#3b5998', '#192f6a']}
style={{
borderRadius: 40,
elevation: 10,
paddingHorizontal: 40,
paddingVertical: 10,
}}
>
<Text style={styles.textStyle}>ok</Text>
</LinearGradient>
</View>
</TouchableWithoutFeedback>
<TouchableWithoutFeedback
onPress={() => {
setModalVisible(!modalVisible);
}}
>
<View style={{ top: 20, marginHorizontal: 10 }}>
<LinearGradient
colors={['#4c669f', '#3b5998', '#192f6a']}
style={{
borderRadius: 40,
elevation: 10,
paddingHorizontal: 40,
paddingVertical: 10,
}}
>
<Text style={styles.textStyle}>cancel</Text>
</LinearGradient>
</View>
</TouchableWithoutFeedback>
</View>
</View>
</View>
</Modal>
</View>
);
};
对于modalVisible
和setModalVisible
您需要定义一个反应 state,例如 -
对于功能组件
const [modalVisible, setModalVisible] = React.useState(false);
然后,当您希望模态显示在屏幕上时,使用setModalVisible
将modalVisible
的值更改为true
。
对于item.codeName
- 请分享item
结构。 但是,如果您使用firstButton
作为组件然后解构您的道具,请改用function firstButton({item})
,否则它应该可以正常工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.