我无法获取任何React SyntheticKeyboardEvent
处理程序来注册事件属性null
以外的任何内容。
我把组件弄得一团糟,得到的结果与我的应用程序相同。谁能看到我在做什么错?
http://jsfiddle.net/kb3gN/1405/
var Hello = React.createClass({
render: function() {
return (
<div>
<p contentEditable="true"
onKeyDown={this.handleKeyDown}
onKeyUp={this.handleKeyUp}
onKeyPress={this.handleKeyPress}>Foobar</p>
<textarea
onKeyDown={this.handleKeyDown}
onKeyUp={this.handleKeyUp}
onKeyPress={this.handleKeyPress}>
</textarea>
<div>
<input type="text" name="foo"
onKeyDown={this.handleKeyDown}
onKeyUp={this.handleKeyUp}
onKeyPress={this.handleKeyPress} />
</div>
</div>
);
},
handleKeyDown: function(e) {
console.log(e);
},
handleKeyUp: function(e) {
console.log(e);
},
handleKeyPress: function(e) {
console.log(e);
}
});
React.renderComponent(<Hello />, document.body);
最佳答案
BinaryMuse在IRC上提供了答案。事实证明,这只是一个怪癖。您不能直接从SyntheticKeyboardEvent
读取属性-您需要从处理程序中指定属性:
handleKeyUp: function(e) {
console.log(e.type, e.which, e.timeStamp);
},
http://jsfiddle.net/BinaryMuse/B98Ar/