首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何修复递增按钮将数字添加到值的末尾而不是在onChange之后递增

问如何修复递增按钮将数字添加到值的末尾而不是在onChange之后递增
EN

Stack Overflow用户
提问于 2019-05-05 04:09:32
回答 1查看 52关注 0票数 1

我正在尝试通过React来处理按钮点击的增量。

我被难倒的是,递增将一个值添加到数字的末尾,而不是实际递增它,而递减是正确的。例如,我通过键盘添加的值为30。然后当我点击increment而不是31,结果是301。

在我的父组件中,我有:

代码语言:javascript
复制
state = {
    points: 0,
}  

updateInputValue = (event) => {
    this.setState({points : event.target.value})
}

handlePoints = (key) => {
    const { points } = this.state;

    if(key === 'increment')
        this.setState({ points: points + 1 })
    else
        points  > 0 && this.setState({ points: points - 1 })
};

在孩子身上:

代码语言:javascript
复制
<input
    type="number" 
    id="num_of_players" 
    name="Number of Players"
    min="0"   value= {this.props.points} onChange={evt => 
    this.props.updateInputValue(evt)}/>

<button
    width={`${BUTTON_WIDTH}px`} 
    fontSize={`${BUTTON_FONTSIZE}px`} 
    color='red' 
    onClick= {()=> this.props.handlePoints('increment')}><ImageContainer> 
    <Image><img src={ plusIconSVG } alt='plus button' /></Image> 
    </ImageContainer></button>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-05 04:13:47

我认为问题在于它使用的是字符串形式的加号,也就是拼接。发生这种情况的原因是因为event.target.value变量是一个字符串。尝试使用parseInt进行包装。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55986411

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档