Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
React native 我如何将两个数字相加?_React Native - Fatal编程技术网

React native 我如何将两个数字相加?

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

我正在用我的react项目尝试EXPO,并开始学习基础知识,我让计算器使用不同的复制代码,但我试着自己做。为什么这不起作用

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)}