首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >React native Alert可以等待用户响应吗?

React native Alert可以等待用户响应吗?
EN

Stack Overflow用户
提问于 2018-10-16 06:21:35
回答 3查看 6.4K关注 0票数 6

React native Alert是否可以等待用户的响应(就像暂停应用程序一样),而不是仅仅弹出窗口,并继续以下逻辑?

我认为js alert会暂停应用程序。

EN

回答 3

Stack Overflow用户

发布于 2018-10-16 06:40:30

下面是您可以使用Alert执行的操作

您可以将cancelable设置为false,这样用户就无法在不按下按钮的情况下关闭警报

您可以为每个按钮设置一个回调。

此外,您还可以使用Promise包装Alert,以便使用async

代码语言:javascript
复制
const AsyncAlert = () => {
    return new Promise((resolve, reject) => {
        Alert.alert(
            'Title',
            'Message',
            [
                {text: 'YES', onPress: () => resolve('YES') },
                {text: 'NO', onPress: () => resolve('NO') }
            ],
            { cancelable: false }
        )
    })
}    

// Then to use the method
const userResponse = await AsyncAlert()
// ...the rest of your code
票数 12
EN

Stack Overflow用户

发布于 2018-10-26 04:17:21

我使用@Tareq El-Masri代码并对其进行了编辑。将其更改为异步函数将起作用。

代码语言:javascript
复制
const AsyncAlert = (title, msg) => new Promise((resolve) => {
  Alert.alert(
    title,
    msg,
    [
      {
        text: 'ok',
        onPress: () => {
          resolve('YES');
        },
      },
    ],
    { cancelable: false },
  );
});

await AsyncAlert();

票数 3
EN

Stack Overflow用户

发布于 2019-10-21 13:56:56

虽然其他答案几乎是正确的,但它们仍然需要读者操纵要在自己的代码中使用的函数(例如。以改变按钮等)。这是一个很好的可导出版本,它允许你传入一个函数来创建你需要的任何按钮设置:

代码语言:javascript
复制
import { Alert as NativeAlert } from 'react-native';

const defaultButtons = (resolve, reject) => [
  {
    text: 'OK',
    onPress: () => {
      resolve();
    },
  },
];

const AsyncAlert = (title, msg, getButtons = defaultButtons) =>
  new Promise((resolve, reject) => {
    NativeAlert.alert(title, msg, getButtons(resolve, reject), { cancelable: false });
  });

export default AsyncAlert;

像这样使用:

await AsyncAlert('Some Title', 'Some message.')

如果你想要自定义按钮,只需传递一个函数作为第三个参数(如果你需要的话,这个参数会得到resolve和reject。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52825503

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档