我有一个奇怪的错误,定价在模拟器中可见,运行良好,但在检查移动设备时,它没有显示,尽管它在那里,但只是没有显示。我尝试过更改字体颜色,添加if条件等,但都不起作用。
此外,在注意到并处理这个错误后,我发现当小数点后的数字很大时,它确实会出现。(附屏幕截图(,但当它较小时不会显示。
模拟器屏幕截图
手机屏幕截图价格可见
手机屏幕截图价格不可见
用于在价格中添加逗号的函数。
export function numberWithCommas(x) {
var parts = x.toString().split(".");
parts[0] = parts[0].replace(/B(?=(d{3})+(?!d))/g, ",");
return parts.join(".");
}
用于在末尾预览合计的代码。
return (
<View style={{ flex: 1 }}>
<Tab.Navigator>
<Tab.Screen name="One-Time Cart" component={OneTimeCart} />
<Tab.Screen name="Subscription Cart" component={SubscriptionCart} />
</Tab.Navigator>
<View style={styles.cartTotal}>
<View style={styles.cartTotalSubView}>
<Text style={styles.cartAllText}>One Time Cart:</Text>
<Text style={[styles.price, styles.cartAllText]}>₹ {numberWithCommas(grandTotal[0])}</Text>
</View>
<View style={styles.cartTotalSubView}>
<Text style={styles.cartAllText}>SubScription Cart:</Text>
<Text style={[styles.price, styles.cartAllText]}>₹ {numberWithCommas(grandTotal[1])}</Text>
</View>
<View style={styles.cartTotalSubView}>
<Text style={styles.cartAllText}>Total:</Text>
<Text style={[styles.price, styles.cartAllText]}>₹ {numberWithCommas(grandTotal[0] + grandTotal[1])}</Text>
</View>
</View>
<View>
<Button style={styles.checkoutButton} onPress={() => navigation.navigate("Checkout")}><Text style={styles.buttonText}>CHECKOUT</Text></Button>
</View>
</View>
)
找到了导致此问题的一些答案。问题在于₹符号,如果我去掉它,它就会出现。将不断更新如何使其与Symbol 一起工作
第1版:所以作为字符串的JSX不会实时更新,因为我使用redux值将其转换为逗号类型的价格,然后用空格单独添加卢比符号。删除它可以实现实时性并且没有任何问题。不知怎的,redux状态值转换为字符串不起作用。