<input type='range'>
元素的IE11 uses onChange instead of onInput。
在IE11中反应does not call either of these。
onInput
适用于FF,Chrome和Edge,因此可以。
沿着兔子洞向下引导here和here,建议使用onMouseUp
或onClick
,但我还没有得到这个。
我尝试过各种听众组合无济于事。我甚至试过this(当然,它也没有用)。有人有解决方法吗?
答案 0 :(得分:1)
经过一番挖掘后,我已经确定了react-range,因为它轻巧,直接且有效。
source中{p>render()
显示了它是如何做到的:
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很可能会回答这个问题。