我真的不明白类型分配系统如何处理打字稿中的变量。 谁能帮我为什么这不起作用。 谢谢
import React, { Component } from "react";
import { ScrollView, Alert, View, Text, StyleSheet } from "react-native";
import QRCode from "react-native-qrcode";
import { Button } from "native-base";
import { startNFC } from "./NFCHelper";
export default class POS_2MENU extends Component {
static navigationOptions = ({ navigation }) => ({ header: null });
constructor(props) {
super(props);
const { navigation } = this.props;
this.state = { tagValue: null, showProgress: false };
global.payer = navigation.getParam("wallet");
global.amount = navigation.getParam("amount");
global.token = navigation.getParam("token");
global.card = navigation.getParam("card");
}
componentWillMount() {
startNFC(this.handleNFCTagReading);
}
componentWillUnmount() {
// stopNFC();
}
handleNFCTagReading = nfcResult => {
if (nfcResult.Error) {
this.setState({ tagValue: nfcResult.Error.Message });
} else {
alert("nfc data show here");
}
};
render() {
return (
<ScrollView style={styles.homeView}>
{this.state.tagValue ? (
<Text style={styles.tagValue}>{this.state.tagValue}</Text>
) : null}
<View style={styles.container}>
<Button
style={styles.image1}
activeOpacity={0.5}
>
<Text style={{ color: "#fff", fontSize: 20, marginLeft: "18%" }}>
Tap Card Here
</Text>
</Button>
<QRCode
value={global.payer + "," + global.amount}
size={200}
bgColor="#000"
fgColor="#fff"
/>
</View>
</ScrollView>
);
}
}
const styles = StyleSheet.create({
homeView: {
marginTop: 20,
marginBottom: 40
},
container: {
marginTop: 40,
marginLeft: "25%"
},
image1: {
backgroundColor: "#008CBA",
width: 200,
height: 200,
marginBottom: 40
},
tagValue: {
fontWeight: "bold",
fontSize: 16,
marginTop: 40,
paddingLeft: 40,
paddingRight: 40,
textAlign: "center"
}
});
我希望有一个简单的parseFloat
答案 0 :(得分:3)
toFixed
返回一个string
,您将其分配给应为number
的变量。您需要另一对()
才能将toFixed
的结果转换回数字
this.valorParcela = Number(( this.totalCost / this.VendaProdutoVendaNParcelas).toFixed(2));
或者您也可以使用一元+
技巧来进行数字转换:
this.valorParcela = +(this.totalCost / this.VendaProdutoVendaNParcelas).toFixed(2);
答案 1 :(得分:0)
toFixed()
返回字符串。由于尝试分配给数字类型而引发错误。因此只需再次强制转换为Number(expression)
或将此变量设置为字符串this.valorParcela
this.valorParcela = Number(Number(this.totalCost / this.VendaProdutoVendaNParcelas).toFixed(2)));
答案 2 :(得分:0)
.toFixed(2);
总是返回字符串。
您已经分配了类型number
。
答案 3 :(得分:0)
您可以使用数字(Number)和一元运算符(+)将字符串更改为整数。