在 React Native 中添加变量

问题描述 投票:0回答:0

我在 React Native 中使用 TextInputs (CustomInput) 进行计算时遇到不一致。例如;如果我在 Scope Height 下输入“5”并计算,我得到的数字与将“scopeHeight”变量替换为 5 时得到的数字不同。其他输入变量似乎工作正常。

const SignInScreen = () => {
    const [scopeHeight, setScopeHeight] = useState('');
    const [pelletWeight, setPelletWeight] = useState('');
    const [pelletSpeed, setPelletSpeed] = useState('');
    const [firstZero, setFirstZero] = useState('');
    const [secondZero, setSecondZero] = useState('');
    const [targetDistance, setTargetDistance] = useState('');
    const [joules, setJoules] = useState('');
    const [ftlb, setFtlb] = useState('');
    const [hold, setHold] = useState('');
    const {height} = useWindowDimensions();

    const onCalcPressed = () => {
        var footPound = ((pelletSpeed**2)*pelletWeight)/450240
        setFtlb(footPound.toFixed(1)+ " ft.lb");

        var joule = footPound*1.356
        setJoules(joule.toFixed(1) + " J");

        var pelletDrop = -490.33*((targetDistance/pelletSpeed)**2)
        var scopeDrop1 = ((-490.33*firstZero**2)/pelletSpeed**2)-scopeHeight
        var scopeDrop2 = targetDistance/firstZero
        var scopeDrop = (scopeDrop1*scopeDrop2)+scopeHeight
        var difference = pelletDrop-scopeDrop
        var hold = difference*32.8084/targetDistance

        setHold(hold.toFixed(2) + " MRAD");
    }

    return (
        <View style={styles.root}>
            <Image 
            source={Logo} 
            style={[styles.logo, {height: height * 0.3}]} 
            resizeMode="contain"
            />

            <Text style={[styles.baseText]}>Scope Height (cm)</Text>
            <CustomInput 
            placeholder="Scope Height (cm)" 
            value={scopeHeight} 
            setValue={setScopeHeight}
            />

            <Text style={[styles.baseText]}>Pellet Weight (grains)</Text>
            <CustomInput 
            placeholder="Pellet weight (grains)" 
            value={pelletWeight} 
            setValue={setPelletWeight} 
            />

            <Text style={[styles.baseText]}>Pellet Speed (ft/s)</Text>
            <CustomInput 
            placeholder="Pellet speed (feet/second)" 
            value={pelletSpeed} 
            setValue={setPelletSpeed} 
            />

            <Text style={[styles.baseText]}>First Zero (ft)</Text>
            <CustomInput 
            placeholder="First zero (feet)" 
            value={firstZero} 
            setValue={setFirstZero} 
            />

            <Text style={[styles.baseText]}>Second Zero (ft)</Text>
            <CustomInput 
            placeholder="Second zero (feet)" 
            value={secondZero} 
            setValue={setSecondZero} 
            />

            <Text style={[styles.baseText]}>Target Distance (ft)</Text>
            <CustomInput 
            placeholder="Target Distance (feet)" 
            value={targetDistance} 
            setValue={setTargetDistance} 
            />

            <CustomButton text="Calculate" onPress={onCalcPressed} />

            <Text style={{fontWeight: 'bold'}}>Energy</Text>
            <Text>{ftlb}</Text>
            <Text>{joules}</Text>
            <Text>{hold}</Text>
        </View>
    )
}

我已经意识到问题是添加和减去变量没有像我预期的那样工作(scopeHeight + scopeHeight)返回值为 5 而不是 10 的“55”。有什么办法解决这个问题吗?任何帮助将不胜感激!

react-native calculation
© www.soinside.com 2019 - 2024. All rights reserved.