当前位置: 首页 > 知识库问答 >
问题:

如何在react native中使用来自外部API的promises数据

赏新知
2023-03-14

//hook for the clicked currency pair

const [pricealert, setPricealert]  = useState(0)

function checkAlertCondition (){
  return new Promise((resolve, reject) => {
    if(pricealert >= {...data.prices.AskPrice})
    {
      resolve({
        Pair: {...data.prices.instrument},
        message: "Price" + pricealert + "Has been hit"
      });
    } else if (pricealert <= {...data.prices.BidPrice}) {
      resolve({
        Pair:{...data.prices.instrument},
        message: "Price" + pricealert + "has been hit"
      });
    } else {
      reject ("Create Alert")
    }
  });
}

checkAlertCondition()
.then((message) => {
  console.log(message)
  .then((message) => {
    console.log(message)
  })
  .catch(() => {
    console.log(err)
  })
})
      

 <Modal visible={modalopen} animationType={"fade"}>
   <View style={styles.modal}>
     <View>
       <Text style={{textAlign: "center", fontWeight: "bold"}}>
         {data.prices[clickedindex].instrument}
       </Text>
       <Text style={{textAlign: "center"}}>
         {data.prices.AskPrice}/{data.prices.BidPrice}
       </Text>
       <Card.Divider/>
       <View style={{ flexDirection: "row"}}>
         <View style={styles.inputWrap}>
           <TextInput
             style={styles.textInputStyle}
             value={pricealert}
             onChangeText = {(pricealert) => setPricealert(pricealert)}
             placeholder="Alert Price"
             placeholderTextColor="#60605e"
             numeric
             keyboardType='decimal-pad' 
           />
           </View>
         </View>   
         <TouchableOpacity
           style={styles.button}
           onPress={() => {
             if(pricealert.length < 7) {
               Alert.alert("Error", "Enter a valid price")
               return;
             } else if (pricealert.length > 7) {
               Alert.alert("Error", "Enter a valid price")
               return;
             }
             setModalOpen(false);checkAlertCondition()} }
           >
             <Text style={styles.buttonTitle}>OK</Text>
           </TouchableOpacity>
         </View>
       </View>
     </Modal>
       
  

共有1个答案

夏烨霖
2023-03-14

您可能希望使用onpress函数中的promise,如下所示:

       <TouchableOpacity
         style={styles.button}
         onPress={
           () => {
             if(pricealert.length < 7) {
               Alert.alert("Error", "Enter a valid price")
               return;
             } else if (pricealert.length > 7) {
               Alert.alert("Error", "Enter a valid price")
               return;
             }
             setModalOpen(false);
             checkAlertCondition().then((message) => {
               console.log(JSON.stringify(message));
             })
             .catch(() => {
               console.log(err)
             });
           }
         }
       >
 类似资料:
  • 我试图使用从另一个json模式导入定义,但得到以下错误: 目录结构: 通过使用绝对路径、url和路径的其他几种组合,我尝试了几种组合。不知道是怎么回事。 架构验证器:

  • 在我们的spring boot应用程序中,我们出于某种目的调用外部API,它将返回大约20mb的JSON数据作为响应。收到响应后,使用ObjectMapper将响应映射到POJO。 我们正在使用RestTemboard调用API并接收响应。 在Spring启动应用程序中处理大型响应数据而不会出现内存问题的最佳实践是什么? 谢谢

  • 我有以下两个项目放置在一些文件夹中彼此相邻,我想包括一个非梯度项目的具体来源到这个项目的结构如下。 在build.gradle中,为什么跟随不起作用?我有什么选择? 此外,我需要包含来自非 gradle 项目的特定 java 源代码。 盖德·格拉德尔

  • 我尝试使用mallet库运行LDA算法。当我尝试使用一组参数运行LDA时,没有问题,但使用另一组参数时,我遇到了以下错误: 我的代码如下所示: 如何捕捉由外部jar引起的异常?我听过这个问题,但它对我不起作用。知道吗? 编辑: 我的项目是一个在apache tomcat服务器上运行的restful网络服务。我试着在多普斯特函数中调用lda算法。 编辑2 Mallet是一个开源库。所以我试着阅读代码

  • 问题内容: 其实我的主机上有一个php网站。现在,我将个性化一个Wordpress主题以替换它。暂时还可以,但是旧网站具有内置功能,可以使用令牌连接到另一个数据库。此连接仅用于获取一些数据。 您能告诉我如何在新的wordpress主题中实现此功能吗? 是否存在一个wordpress插件? 谢谢 问题答案: 将wordpress连接到第二个数据库 (没有令牌) 的最简单方法是添加以下代码(用连接数据

  • 我有对所有用户开放的云功能,我想授权这些功能的任何使用。 我的情况是,我希望其他公司访问我的应用编程接口,但不要访问我没有添加的任何其他用户。 谷歌的文档对我的具体案例没有帮助。 这样做的正确方法是为公司创建一个服务帐户来调用APIendpoint吗? 或者我应该创建一个JWT令牌并以某种方式验证它吗?链接 还是需要创建云endpoint网关? OAuth 2不适合,因为我无法显示同意屏幕,因为它