react-native - React-Native textInput 添加数字而不是添加数字
问题描述
我有两个输入字段,它们接受我添加并显示的数字。问题是当我输入 40 时,我的总字段必须显示 40。但它显示 4+40 = 44 。在下一个输入字段中,如果我添加 30,则将其视为 3 + 30,并且我的总字段显示为 44 +33 = 77 而不是 70
这是我的实现。我知道这是一件简单的事情,但在问这个问题之前我经历了很多论坛。
const [ival, setIval] = useState(0); // state to hold sum
const handleInput = val => { // handles input
let tmp = parseInt(val) + parseInt(ival); // adds curr state and input
setIval(tmp);
};
<TextInput
style={[{height: 40, borderWidth: 1}]}
value={ival}
onChangeText={text => handleInput(text)}
/>
<TextInput
style={[{height: 40, borderWidth: 1}]}
value={ival}
onChange={text => handleInput(text)}
/>
<Text>{ival}</Text> // displayes sum
解决方案
您正在做的是 - 每次在文本输入中输入一个值时都会考虑一个新数字
这应该工作 -
const [ival, setIval] = useState(0); // state to hold sum
const [input1, setInput1] = useState('');
const [input2, setInput2] = useState('');
const handleInput1 = val => { // handles input
setInput1(val)
setIval(ival+parseInt(val));
};
const handleInput2 = val => { // handles input
setInput2(val)
setIval(ival+parseInt(val));
};
<TextInput
style={[{height: 40, borderWidth: 1}]}
value={input1}
onChangeText={text => handleInput1(text)}
/>
<TextInput
style={[{height: 40, borderWidth: 1}]}
value={input2}
onChange={text => handleInput2(text)}
/>
<Text>{ival}</Text> // displayes sum
推荐阅读
- angular - 为什么通过 WEBURL 过滤不起作用
- java - Mapping Map to DTO object using Jackson Object Mapper
- java - 使用模拟单元测试和弹簧引导模拟方法内部的局部变量
- javascript - What is the best way to conditionally add key/value pairs to an object
- excel - Excel VBA - Function Stops after using FindNext (Works in Subroutine)
- javascript - 当应用程序在后台时Websocket断开连接
- java - 使用 Jackson 将名称值对数组反序列化为对象
- regex - 获取端口而不从正则表达式获取 ip
- google-cloud-vision - 当我们在 Google-AutoMl 中再次恢复经过训练的模型时,定价模型将是什么
- python - 如何返回根据其子列表组件排列的列表