Javascript react native中promise中的条件呈现
我正在从外部api获取数据。该数据为货币对,如欧元兑美元,分别为实时询价和报价,如1.17123和1.17150。因此,应用程序的用户需要输入一个未来价格,这样,如果询问或出价达到用户输入的价格,就会记录一条消息。我尝试过使用承诺,但它会在我运行应用程序时立即输出用户输入到文本输入中的价格,而不是检查价格是否已达到用户预期的未来价格。下面是我的代码:Javascript react native中promise中的条件呈现,javascript,reactjs,react-native,Javascript,Reactjs,React Native,我正在从外部api获取数据。该数据为货币对,如欧元兑美元,分别为实时询价和报价,如1.17123和1.17150。因此,应用程序的用户需要输入一个未来价格,这样,如果询问或出价达到用户输入的价格,就会记录一条消息。我尝试过使用承诺,但它会在我运行应用程序时立即输出用户输入到文本输入中的价格,而不是检查价格是否已达到用户预期的未来价格。下面是我的代码: const [pricealert, setPricealert] = useState(0) function checkAlertCon
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")
}
});
}
<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()
.then((message) => {
console.log(JSON.stringify(message) )
.catch((err) => {
console.log(err)
})
});} }
>
<Text style={styles.buttonTitle}>OK</Text>
</TouchableOpacity>
</View>
</View>
</Modal>
const[pricealert,setPricealert]=useState(0)
函数checkAlertCondition(){
返回新承诺((解决、拒绝)=>{
if(pricealert>={…data.prices.AskPrice})
{
决心({
配对:{…数据.价格.仪器},
消息:“价格”+pricealert+“已命中”
});
}否则(价格警报)
{
如果(pricealert.length<7){
警报。警报(“错误”,“输入有效价格”)
返回;
}否则如果(pricealert.length>7){
警报。警报(“错误”,“输入有效价格”)
返回;
}
setModalOpen(假);
checkAlertCondition()
。然后((消息)=>{
console.log(JSON.stringify(消息))
.catch((错误)=>{
console.log(错误)
})
});} }
>
好啊
也许您有两个选择,第一个是在文本输入的OneDediting中执行您的逻辑,或者使用React的useMemo,应用此逻辑,您可以具有以下功能:
记录相同的结果