react-native - React Native Android:如何能够访问不同的 Textinput 字段?
问题描述
我正在创建一个带有 3 个文本输入字段的温度转换器,一个用于 C,一个用于 F,一个用于 K。当我在 C 字段中输入一个值时,它会计算 F 和 K 的值。到目前为止一切都很好。但是当我想在 F 字段中输入一个值,或返回 C 字段时,这些值会停留在最后计算的值上。
如何使所有字段再次可食用以在任何字段中输入新值?
问候,拉斯
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>
);
};
解决方案
您可以在 onFocus() 的帮助下清除文本字段的值
推荐阅读
- c++ - C++:“抛出异常:读取访问冲突。” 将向量分配给另一个时
- google-apps-script - 尝试运行任何东西时,容器绑定脚本突然说“应用程序被阻止”
- python - Python Selenium Webdriver - 在 Instagram 上处理鼠标悬停
- aws-lambda - 是否可以将alexa输出连接到amazon SQS
- python - 使用路由器与在 urlpatterns 中包含 url
- angular - 如何在不清除预填充数据的情况下重置 Angular 反应式表单?
- ios - 致命错误:找不到模块映射文件 YogaKit.modulemap
- powershell - 如何更改我的代码以输出到控制台和 Powershell 中的输出日志?
- javascript - 一段时间后,Chrome中的滚动文本消失
- sql - PostgreSQL - 使用子查询生成系列