【问题标题】:Question : Changing react state gives strange value upon addition问题:改变反应状态在添加时会给出奇怪的值
【发布时间】:2021-03-05 17:08:06
【问题描述】:

我想为响应状态添加一些值。

默认状态是 21,如果在其中添加 4 给出 25,并且在通过 setState 更改状态时,假设年龄设置为 26,现在在其中添加 4 给出结果:264(而它应该给出 30)。

代码如下:

    state:{
        age:21
    }

    addition(){
    var startage = this.state.age;
    var endage = this.state.age+4;

    var ageSt = parseInt(startage);
    var ageEn = parseInt(endage);
    
    console.log("start age is"+ageSt);
    console.log("end age is"+ageEn);
    ... further code
    }

    class addAge extends React.Component{
        render(){
          return(
            <div>
              <button onPress={()=>this.setState({age:26})}></button>
              ...
              <AnyCompnent onPress={this.addition}/>
            </div>

);
}
}

需要帮助,为什么在更改状态时它没有给出预期的结果。 TIA

【问题讨论】:

    标签: javascript reactjs react-native type-conversion


    【解决方案1】:

    似乎年龄是字符串,所以正在添加字符串。

    确保年龄是一个数字。

    【讨论】:

    【解决方案2】:

    在添加到状态之前将其转换为 Integer 而不是为其添加值可以正常工作。例如

      var startage = parseInt(this.state.age);
      var add = startage+4;
      //26+4 =30
    

    【讨论】:

      【解决方案3】:
      <button onPress={()=>this.setState({age:26})}></button> 
      

      应该是

      <button onPress={()=>{this.setState({age:26})}}></button>
      

      【讨论】:

        猜你喜欢
        • 2013-01-16
        • 1970-01-01
        • 1970-01-01
        • 2019-03-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-01-13
        • 1970-01-01
        相关资源
        最近更新 更多