我使用的反應,WebSocket的測試通信裏面:如何調用與綁定方法(這)一個WebSocket的事件
class Class extends React.Component {
constructor(props) {
super(props);
this.state = {...};
this.generateMsg= this.generateMsg.bind(this);
this.sendMsg = this.sendMsg.bind(this);
}
//generate a random array
generateMsg(n) {return [...]}
//websocket sendMsg
sendMsg(){
const wsClient = new Websocket(url);
wsClient.onopen = function(){
wsClient.send(this.generateMsg(40));
}
}
render() {
return (
<button onClick={this.sendMsg}>{this.state.nameList}</button>
);
}
}
ReactDOM.render(...);
總是引發ERR「this.generateMsg不是一個函數」,如何調用方法綁定(這)在一個websocket事件內請嗎?
誰在調用'sendMsg()'?如果啓用了babel ['transform-class-properties'](https://babeljs.io/docs/plugins/transform-class-properties/),請嘗試使用箭頭函數將sendMsg定義爲類屬性。 –
對不起,爲了清楚問題,我隱藏了其他部分,我現在修改我的問題 –
這段代碼沒有什麼不對。您需要提供更多信息。 –