【发布时间】:2014-04-03 02:26:28
【问题描述】:
我无法让任何 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);
【问题讨论】:
-
如已接受的答案中所述:您不能直接记录事件对象。但是在使用 ES2015 内省所有可用属性时,您可以使用像
console.log({...e});这样的属性传播。
标签: javascript reactjs react-jsx