小编Ell*_*nor的帖子

在 React 中对数字输入使用 toFloat 和 setState

我有一个数字输入字段,它在用户键入时通过状态设置新值。这工作正常。但是,如果我向其添加小数(toFixed),则在仅输入一位数字后,光标将跳转到输入的末尾。例如,当我删除现有内容并键入其他内容时,就会发生这种情况。如果我在第一个和小数点之间添加一个数字,则光标不会跳转。有没有人以前遇到过这种情况,解决方案是什么?

小提琴显示问题:https : //jsfiddle.net/Inverness/k04yvq1u/

constructor() {
    super()

    this.state = {
      number: 1
    }

    this.handleInputChange = this.handleInputChange.bind(this)
  }

  handleInputChange(event) {
    console.log(event.target.value)
    this.setState({
      number: event.target.value
    })
  }

  render() {
    return (
      <div>
        <input
          type="number"
          value={ parseFloat(this.state.number).toFixed(2) }
          onChange={ this.handleInputChange }
          />
      </div>
    )
  }
Run Code Online (Sandbox Code Playgroud)

tofixed reactjs

5
推荐指数
1
解决办法
3018
查看次数

标签 统计

reactjs ×1

tofixed ×1