React native 我如何将两个数字相加?
我正在用我的react项目尝试EXPO,并开始学习基础知识,我让计算器使用不同的复制代码,但我试着自己做。为什么这不起作用React native 我如何将两个数字相加?,react-native,React Native,我正在用我的react项目尝试EXPO,并开始学习基础知识,我让计算器使用不同的复制代码,但我试着自己做。为什么这不起作用 import React, { useState } from 'react'; import { StyleSheet, View, Button, Alert, TextInput, Image, Input } from 'react-native'; export default function App() { const [number1, setNumb
import React, { useState } from 'react';
import { StyleSheet, View, Button, Alert, TextInput, Image, Input } from 'react-native';
export default function App() {
const [number1, setNumber1] = useState(0);
const [number2, setNumber2] = useState(0);
const [total, setTotal] = useState(number1 + number2);
function addTogether() {
setTotal(number1 + number2);
Alert.alert('Alert', 'Tulos: ' + total);
}
return (
<View style={styles.container}>
<TextInput type="number"
placeholder='0'
value={number1}
onChange={e => setNumber1(+e.target.value)}
/>
<TextInput type="number"
placeholder='0'
value={number2}
onChange={e => setNumber2(+e.target.value)}
/>
<Button onPress={addTogether} title="Tulos" />
</View>
);
}
const styles = StyleSheet.create({
container: {
flex: 1,
backgroundColor: '#fff',
alignItems: 'center',
justifyContent: 'space-evenly',
},
image : {
width: 250,
height: 100
},
input : {
width:200 ,
borderColor: 'gray',
borderWidth: 1
}
});
import React,{useState}来自“React”;
从“react native”导入{样式表、视图、按钮、警报、文本输入、图像、输入};
导出默认函数App(){
常量[number1,setNumber1]=使用状态(0);
常量[number2,setNumber2]=使用状态(0);
const[total,setTotal]=useState(number1+number2);
函数addTogether(){
setTotal(1号+2号);
警报。警报('Alert','Tulos:'+总计);
}
返回(
setNumber1(+e.target.value)}
/>
setNumber2(+e.target.value)}
/>
);
}
const styles=StyleSheet.create({
容器:{
弹性:1,
背景颜色:“#fff”,
对齐项目:“居中”,
为内容辩护:“间隔均匀”,
},
图片:{
宽度:250,
身高:100
},
输入:{
宽度:200,
边框颜色:“灰色”,
边框宽度:1
}
});
预期结果:(总数)
结果:(NaN)或0
提前感谢您的帮助!:) 你好,你试过换这个吗
onChange={e => setNumber1(+e.target.value)}
与
或者只是onChange=setNumber1
当然,第2个问题也是一样的。您的示例中似乎存在两个问题。使用来自
onChange
的有效负载被误用,警报显示旧的总负载
import React,{useState}来自“React”;
从“react native”导入{样式表、视图、按钮、警报、文本输入、图像、输入};
导出默认函数App(){
常量[number1,setNumber1]=使用状态(0);
常量[number2,setNumber2]=使用状态(0);
const[total,setTotal]=useState(number1+number2);
函数addTogether(){
常数newTotal=number1+number2;
setTotal(新总数);
Alert.Alert('Alert','Tulos:'+newTotal);//total在渲染中具有旧值
}
返回(
{
setNumber1(Number.parseInt(v));//使用onChangeText中解析的值
}}
/>
{
setNumber2(Number.parseInt(e.nativeEvent.text));//或在更改时从nativeEvent获取正确的值
}}
/>
);
}
const styles=StyleSheet.create({
容器:{
弹性:1,
背景颜色:“#fff”,
对齐项目:“居中”,
为内容辩护:“间隔均匀”,
},
图片:{
宽度:250,
身高:100,
},
输入:{
宽度:200,
边框颜色:“灰色”,
边框宽度:1,
},
});
我尝试了这个,但不幸的是它没有成功:(就是它!谢谢你非常详细的回答!)
onChange={(e) => setNumber1(e)}