I am creating a temperature converter with 3 textinput fields, one for C, one for F and one for K. When I enter e.g. a value in the C field, it calculates the values for F and K. All fine so far. But when I then want to enter a value in the F field, or go back to the C field, the values are stuck to the last calculated values.
How can I make all fields edible again to enter a new value in any field?
Regards, Lars
export const ConversionInput = () => {
const [valueC, setValueC] = useState();
const [valueF, setValueF] = useState();
const [valueK, setValueK] = useState();
return (
<View>
<View style={styles.container}>
<Text style={styles.text}>Celcius:</Text>
<TextInput
style={styles.input}
keyboardType="numeric"
// value={valueC}
value={
(valueF && `${((parseFloat(valueF) - 32) / 1.8).toFixed(2)}`) ||
valueC
}
onChangeText={(valueC) => setValueC(valueC)}
/>
<Text style={styles.symbol}>°C</Text>
</View>
<View style={styles.container}>
<Text style={styles.text}>Fahrenheit:</Text>
<TextInput
style={styles.input}
keyboardType="numeric"
value={
(valueC && `${(parseFloat(valueC) * 1.8 + 32).toFixed(2)}`) ||
valueF
}
onChangeText={(valueF) => setValueF(valueF)}
/>
<Text style={styles.symbol}>°F</Text>
</View>
<View style={styles.container}>
<Text style={styles.text}>Kelvin:</Text>
<TextInput
style={styles.input}
keyboardType="numeric"
value={
(valueC && `${(parseFloat(valueC) + 273.15).toFixed(2)}`) ||
(valueF &&
`${((parseFloat(valueF) + 459.67) * 0.555555).toFixed(2)}`) ||
valueK
}
onChangeText={(valueK) => setValueK(valueK)}
/>
<Text style={styles.symbol}> K</Text>
</View>
</View>
);
};