簡體   English   中英

防止反應原生警報解除 onPress 按鈕

[英]Prevent react-native alert dismiss onPress button

我有一個react-native警報如下。 我想要實現的是防止警報框關閉onPress並延遲警報框關閉。

如何使用內置於 Alert 組件的 react-native來實現這一點?

我假設有一個內置的preventAlertBoxDismiss()dismissAlert()函數,但在文檔中找不到。

1) 防止警告框在按下按鈕時關閉

onPressAskMeLater = () => {
    preventAlertBoxDismiss();
    anyAction();
}

2)延遲警報框關閉

onPressAskMeLater = () => {
    preventAlertBoxDismiss();
    setTimeOut(3000);
    dismissAlert();
}

警報代碼

Alert.alert(
  'Alert Title',
  'My Alert Msg',
  [
    {text: 'Ask me later', onPress: () => this.onPressAskMeLater()},
    {text: 'OK'},
  ],
  {cancelable: false},
);

系統不支持該方法。 它屬於本機 UI 組件。 您可以使用該組件來實現對話框。 這樣,您就可以控制對話框關閉。

同時,您還可以使用第三個庫。 例如react-native-dialog

將其用作以下內容:

    <View>
        <TouchableOpacity onPress={this.showDialog}>
          <Text>Show Dialog</Text>
        </TouchableOpacity>
        <Dialog.Container visible={this.state.dialogVisible}>
          <Dialog.Title>Account delete</Dialog.Title>
          <Dialog.Description>
            Do you want to delete this account? You cannot undo this action.
          </Dialog.Description>
          <Dialog.Button label="Cancel" onPress={this.handleCancel} />
          <Dialog.Button label="Delete" onPress={this.handleDelete} />
        </Dialog.Container>
      </View>
....
showDialog = () => {
    preventAlertBoxDismiss();
    setTimeOut(3000);
    dismissAlert();
    this.setState({ dialogVisible: true });
  };

showDialog方法中,您可以延遲對話框關閉。 因為它的顯示和解除由您自己的狀態控制。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM