首页 > 解决方案 > 在 React 中更改受控输入的值

问题描述

我正在寻找有关 React 受控/不受控/可控输入的帮助。

这里有一张图来解释:

反应滑块

正如您在图像中看到的,我有两个组件:

我想做的事

这是我的代码:

  state = {
    sliderValue: 10000
  }

handleChangeSlider = value => {
    this.setState({
      sliderValue: value
    })
  }


<Slider
min={5000}
max={45000}
step={250}
value={this.state.sliderValue}
onChange={this.handleChangeSlider}
/>

<input
className={amountInput}
value={this.state.sliderValue}
/>

我想到的一种可能的解决方案是在受控输入上覆盖一个新的“过滤器”输入。因此有两个输入,一个用于显示滑块值,一个用于输入新值。

我觉得我在这里错过了一些东西。

有没有人可以引导我走上正确的道路?

谢谢,

标签: reactjsinputstate

解决方案


要使输入可编辑,请尝试以下操作:

handleInput = event => {
  this.setState({sliderValue: event.target.value})
} 

<input className={amountInput} value={this.state.sliderValue} onChange={this.handleInput}/>

并且不要忘记在构造函数中绑定handleInput。

如果这段代码有任何问题,请随时发表评论。


推荐阅读