【发布时间】:2016-12-01 12:24:25
【问题描述】:
我有一个带有textarea 的MsgInput 组件,其中onKeyUp 触发了一个处理函数。在处理函数内部,我尝试使用this.props 读取道具,但不确定为什么此处未定义道具。当然,解决方法是使用this.handler.bind(this)。
export class MsgInput extends React.Component {
constructor(props) {
super(props);
}
inputHandler(e) {
if(e.keyCode == 13 && !e.shiftKey) {
this.props.onNewMessage({content: e.target.value});
e.target.value = '';
e.preventDefault();
}
}
render() {
return (
<div className="controls">
<textarea onKeyDown={this.inputHandler.bind(this)} className="msg-input" placeholder="Write something" disabled={!this.props.auth}></textarea>
</div>
);
}
}
【问题讨论】:
-
如果您仍然使用转换,请查看
@autobind装饰器:npmjs.com/package/core-decorators#autobind
标签: javascript reactjs this