首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何等待“反应本地人”中警报对话的响应?

如何等待“反应本地人”中警报对话的响应?
EN

Stack Overflow用户
提问于 2018-02-15 06:37:24
回答 6查看 22.8K关注 0票数 22

从我的观察来看,Alert对话框似乎建立在React之上。所以每次调用它时都会弹出,而不是在render函数中。

问题是它不是异步任务,所以Alert之后的代码将继续执行,而不管回调函数如何。

下面的代码演示了Alert对话框不断弹出的情况,因为它一遍又一遍读取相同的条形码。

(它是用TypeScript写的。相信我的话,这是一个有效的片段。)

代码语言:javascript
运行
AI代码解释
复制
 import * as React from "react";
 import Camera from "react-native-camera";
 import { Alert } from "react-native";

 export default class BarcodeScanSreen extends React.Component<any ,any> {
 private _camera;
 private _onBarCodeRead = e => {
    if (e.type === "QR_CODE") {
        Alert.alert(
            "QRCode detected",
            "Do you like to run the QRCode?",
            [
                { text: "No", onPress: this._onNoPress },
                { text: "Yes", onPress: this._onYesPress }
            ],
            { cancelable: false }
        );
    }
};

 private _onYesPress = () => { /* process the QRCode */ }

 private _onNoPress = () => { /* close the alert dialog. */ }

render() {
    return (
        <Camera
            onBarCodeRead={this._onBarCodeRead}
            aspect={Camera.constants.Aspect.fill}
            ref={ref => (this._camera = ref)}
        >
            {/* Some another somponents which on top of the camera preview... */}
        </Camera>
    );
}
}

有没有办法暂停JS代码并等待Alert的响应?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2018-02-15 07:47:13

警报不会暂停代码。在这种情况下,JS不是唯一的问题-- Camera组件也一直在本机背景中运行,它将触发onBarCodeRead侦听器,不管警报是否存在。

您可以尝试用_onBarCodeRead中提到的stopPreview()方法在文档开始时停止照相机。

还请注意,react-native-camera目前正处于从Camera (RCTCamera)到RNCamera的迁移过程中,在新的RNCamera中,我没有看到stopPreview()方法。无论如何,一个简单的标志也可以完成这项工作。

票数 2
EN

Stack Overflow用户

发布于 2018-10-25 12:20:50

反应-本机警报不会停止执行下面的代码。通过将其更改为异步函数来解决对用户的承诺,操作将以Alert的形式工作。

代码语言:javascript
运行
AI代码解释
复制
const AsyncAlert = async () => new Promise((resolve) => {
  Alert.alert(
    'info',
    'Message',
    [
      {
        text: 'ok',
        onPress: () => {
          resolve('YES');
        },
      },
    ],
    { cancelable: false },
  );
});

await AsyncAlert();

票数 36
EN

Stack Overflow用户

发布于 2018-11-13 06:56:39

使用反应-本机警报-异步

我刚刚发布了一个包,它确实做到了这一点,并允许等待用户的选择。它与世博会兼容。

代码语言:javascript
运行
AI代码解释
复制
 import AlertAsync from "react-native-alert-async";


 const myAction = async () => {

   const choice = await AlertAsync(
     'Title',
     'Message',
     [
       {text: 'Yes', onPress: () => 'yes'},
       {text: 'No', onPress: () => Promise.resolve('no')},
     ],
     {
       cancelable: true,
       onDismiss: () => 'no',
     },
   );


   if (choice === 'yes') {
     doSomething();
   }
   else {
     doSomethingElse();
   }

 }

最初的回答:,我已经为ReactNative做了一个公关,其功能是:https://github.com/facebook/react-native/pull/20312

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

https://stackoverflow.com/questions/48809762

复制
相关文章
WiFi 6路由器和WiFi 5路由器有什么区别
随着新一代无线通信标准的普及和生产成本下降,支持WiFi 6标准的网关/路由器近两年得到越来越广泛的应用。WiFi 6路由器相比前一代路由器有什么提升呢?我们是不是一定要更换WiFi 6路由器呢?本篇文章就为大家简单介绍一下。
智慧物联小马
2022/06/09
2.1K0
WiFi 6路由器和WiFi 5路由器有什么区别
【路由器外网映射】腾达A63路由器设置虚拟服务器
一:登陆腾达路由器后台(192.168.0.1)后再高级功能,选择虚拟服务器.如下图:
凯哥Java
2022/12/16
1.7K0
【路由器外网映射】腾达A63路由器设置虚拟服务器
k2路由器刷系统
1)断开电源 2)按住reset键,然后插上电源 3)等待十秒,松开 4)用网线将k2的lan口接入电脑网口 5)访问192.168.1.1,进入breed控制台
治电小白菜
2020/08/25
1.3K0
k2路由器刷系统
链路状态路由协议 OSPF (一)
本章将会学习链路状态路由协议OSPF,理解OSPF的基本概念,工作原理,掌握OSPF配置基本命令
网络豆
2022/11/20
6800
链路状态路由协议 OSPF (一)
烽火2640路由器命令行手册-05-路由器配置命令
使用auto-summary命令激活自动路由汇总功能,no auto-summary命令则关闭自动路由 汇总功能。
landv
2018/12/17
2.4K0
链路状态路由协议 OSPF (三)
广播网络中,两台路由器运行OSPF路由协议(实际可能有多台路由器,这里以两台路由器为例)
网络豆
2022/11/20
3800
链路状态路由协议 OSPF (三)
链路状态路由协议 OSPF (二)
因为运行OSPF的路由器要了解每条链路是连接在那个路由器上的,因此,就需要有一个唯一的标识来标记OSPF网络中的路由器,这个唯一标识称为router ID。
网络豆
2022/11/20
5390
链路状态路由协议 OSPF (二)
telnet登陆路由器。。。「建议收藏」
登陆路由有两种方式。一种是console,还有一种是使用telnet,由于我电脑是win7,不支持console。也懒得装软件,就使用telnent为例。
全栈程序员站长
2022/07/08
1.7K0
telnet登陆路由器。。。「建议收藏」
面试官:重点描述一下三大路由协议对IPv6的支持
(1)为了支持IPv6路由的处理计算,ISIS新增了两个TLV和一个新的NLPID
Ponnie
2021/07/29
1.7K0
移植python到小米路由器记录。
最近抢了一个小米路由器,研究了一下,总的来说现在看起来功能还很少。现在比较有用的功能就是,远程下载功能,支持迅雷,电驴等,不过现在看电影啥的都是直接在线看的,基本上也很少用。检测连接的智能设备,这个功能可以随时查看是否有人曾网,当然也可以用来在远程监控家里都有谁在用路由器。以后应该会有更多的功能扩展,不过这应该是一个漫长的过程,我先自己弄点东西上去玩玩,首先把常用的python移植上去。
py3study
2020/01/08
2.5K0
h3c路由器telnet配置命令_华三路由器telnet配置
主机的配置就略咯,不可能真让你抄作业吧(不会吧不会吧,都暗示这么明白了,不会还有人不会抄作业吧)
全栈程序员站长
2022/11/09
4.6K0
h3c路由器telnet配置命令_华三路由器telnet配置
TCP/IP之路由算法路由算法的分类链路状态路由算法距离向量(Distance Vector)路由算法层次路由例: 路由器1d的转发表设置
网络层的重要功能就是路由和转发。而路由是根据路由器根据所维护的路由表进行路由选择。所以,如果创建和更新转发表就是一个很重要的问题。通常,在路由时,我们总是选取所需代价最小的一条路由。
desperate633
2018/08/22
2.6K0
TCP/IP之路由算法路由算法的分类链路状态路由算法距离向量(Distance Vector)路由算法层次路由例: 路由器1d的转发表设置
小米AC2100路由器刷机教程
之前家中免费的电信宽带免费升级到500M后,原有的360 P1百兆路由器很明显无法提供500M的网络速度,然后购买了一款小米AC2100路由器。
KINDYEAR
2022/07/12
10K1
小米AC2100路由器刷机教程
h3c路由器的配置命令_华三路由器清除配置命令
****************************************************************************** * Copyright (c) 2004-2017 New H3C Technologies Co., Ltd. All rights reserved.* * Without the owner’s prior written consent, * * no decompiling or reverse-engineering shall be allowed. * ******************************************************************************
全栈程序员站长
2022/11/02
1.7K0
h3c路由器的配置命令_华三路由器清除配置命令
BGP实验“杂烩”:IBGP、EBGP、路由策略、路由聚合、链路备份
(3).路由器之间中继链路使用接口地址为:192.168.0.0/16,已经有基础配置。
网络技术联盟站
2023/03/01
7960
BGP实验“杂烩”:IBGP、EBGP、路由策略、路由聚合、链路备份
如何利用智能路由器实现智慧路内停车方案
随着城市化的推进,各城市的主要路段人流车流量日益加大,周边停车位资源也愈加紧张,“停车难”的问题越来越受到关注。针对优化城市停车管理,佰马通过智能路由器配套构建智慧路内停车方案,促进无人值守电子收费路段的车位利用率提升,加强停车秩序规范,缓解路面停车压力,提高城市管理效率。
智慧物联小马
2022/06/15
3750
如何利用智能路由器实现智慧路内停车方案
点击加载更多

相似问题

如何将状态从reach路由器传递到链路

23

在Gatsby中用reach路由器嵌套生成链路的路由

11

使用Reach路由器导航到404路由

317

用params响应路由器链路

10

用路由器链路发送数据

24
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档