antd Slider 动态设置value后拖拽不了,如何解决

我想动态设置slider 的value值,但是设置了value就拖拽不了了,如何解决?

 `${value}%`}
    defaultValue={scale * 100}
    value={scale * 100}
    step={5}
    min={10}
    max={100}
    onAfterChange={value => {
      this.sliderChanged(value);
    }}
  />
                  
                  
sliderChanged = value => {
    this.props.setCanvas(
      Map({
        scale: value / 100
      })
    );
  };

最佳答案

此时组件还不是个受控组件,value值固定了。添加个 onChange 属性。
如果scale是props的属性,声明个state值,比如currentSlider,赋值为scale。

 `${value}%`}
    defaultValue={scale * 100}
    value={scale * 100}
    step={5}
    min={10}
    max={100}
    onAfterChange={value => {
      this.sliderChanged(value);
    }}
    onChange={this.handleChange}
/>

handleChange = (value) => this.setState({
    scale: value
})

看你代码逻辑,已经设置了defaultValue 没必要自己控制value了。在onAfterChange里拿到的value就是当前 Slider 的值了。