如何停止两个状态值之间的串联

每次我尝试运行此代码块时,它只会将a和b连接在一起。除+外,所有其他数学运算符均按预期工作。有什么办法可以停止/解决此问题?

export default class DataInput extends Component {
  constructor(props) {
    super(props);
    this.state = {
      a: 0,b: 0,};
  }


  handleCalculate = () => {
    const { a,b} = this.state;
    let average = (a + b)/2;

    this.setState({ results: average });
  };

  render() {
    return (
      <View style={styles.DataInput}>
          <View style={styles.value}>
            <TextInput
              placeholder="Bench Press"
              onChangeText={a => this.setState({ a })}
              keyboardType={"numeric"}
            />
          </View>
          <View style={styles.value}>
            <TextInput
              placeholder="Shoulder Press"
              onChangeText={b => this.setState({ b })}
              keyboardType={"numeric"}
            />
          </View>
      </View>
swj1363345 回答:如何停止两个状态值之间的串联

在更新输入状态时,应该是

onChangeText={a => this.setState({...this.state,a })} //bench press
onChangeText={a => this.setState({...this.state,b })} //shoulder press
,

您需要对a&b进行分解以进行操作,请参见以下代码:

  export default class DataInput extends Component {
      constructor(props) {
        super(props);
        this.state = {
          a: 0,b: 0,};
      }


      handleCalculate = () => {
        const { a,b} = this.state; // destructure a & b 
        let average = (a + b)/2;

        this.setState({ results: average });
      };

      render() {
        return (
          <View style={styles.DataInput}>
              <View style={styles.value}>
                <TextInput
                  placeholder="Bench Press"
                  onChangeText={value => this.setState({ a: value })}
                  keyboardType={"numeric"}
                />
              </View>
              <View style={styles.value}>
                <TextInput
                  placeholder="Shoulder Press"
                  onChangeText={value => this.setState({ b: value })}
                  keyboardType={"numeric"}
                />
              </View>
          </View>
,

尝试:let average = (parseInt(a)+parseInt(b))/2

本文链接:https://www.f2er.com/3131826.html

大家都在问