React:不要将keyUp用于onChange事件

时间:2014-06-02 15:14:03

标签: javascript events reactjs keyup

是否有可能让React在关注元素丢失之后触发onChange事件,而不是在keyUp上使用它(目前,onChange是任何事件的抽象操纵字段值)? keyUp对我来说有点慢,而且我认为这可能有助于移动设备解决我正在建设的内容,以便将场景重点转移到场地之后。

2 个答案:

答案 0 :(得分:6)

你在找这样的东西吗?

JS Fiddle

我可能正在解释您的要求不正确,但您应该能够通过e.target.value或使用ref来获取您的值,例如:

<input type="text" ref="myValue" onBlur={this.handleChange} />

然后在你的handleChange函数中你有这样的东西:

handleChange: function()
{
    var theValue = this.refs.myValue.getDOMNode().value;
    //setState, etc. here
}

答案 1 :(得分:1)

您可以构建支持此行为的自己的组件,例如:

var ChangeOnBlurInput = React.createClass({
  render: function() {
    var options = this.props;
    options.onBlur = options.onChange;
    // You can also use `transferPropsTo` here, but I've heard it's deprecated
    return React.DOM.input.call(React.DOM, options);
  }
});

React.renderComponent(
  ChangeOnBlurInput({
    value: "Nice", 
    onChange: function(e) { alert(e.target.value) } }),
 document.body);

并在任何地方使用它代替React.DOM.input