反应范围输入IE11 onChange或onInput变通方法

问题描述 投票:3回答:1

IE11 uses onChange instead of onInput<input type='range'>元素。

在IE11中反应does not call either of these

onInput适用于FF,Chrome和Edge,所以没关系。

兔子洞向下导致herehere,这建议使用onMouseUponClick,但我还没有得到这个工作。

我尝试了各种听众组合无济于事。我甚至尝试过this(当然也没用)。有人有解决方法吗?

javascript html5 reactjs
1个回答
1
投票

经过一番挖掘,我已经选择了react-range,因为它轻巧,简单,而且很有效。

render()在其source展示了它是如何做到的:

render: function() {
    var props = _extends({}, this.props, {
      defaultValue: this.props.value,
      onClick: this.onRangeClick,
      onKeyDown: this.onRangeKeyDown,
      onMouseMove: this.onRangeChange,
      onChange: function() {},
      ref: this.setRangeRef
    });
    delete props.value;
    return React.createElement(
      'input',
      props
    );
  }

更新

看来这将在React 16中修复:https://github.com/facebook/react/issues/554#issuecomment-271579096

如果您查看上面的历史记录,您会看到该问题已被#5746关闭。如果您打开此PR,您将看到其里程碑设置为16。

所以修复将在16,我们不能把它放在15.x,因为它引入了行为的突破性变化。

我不知道是否有可能将它向后移植到15.x. @jquense和@nhunzaker可能会回答这个问题。

© www.soinside.com 2019 - 2024. All rights reserved.