使用套接字
调用此方法时出错componentDidMount(){
var backapi = api.Backend_API();
var db = this.state.data;
console.log("componentDidMount", this.state.data)
socket.on('notification',
function (notification) {
console.log("avi", notification);
fetch(backapi + "event/eventname/" + notification.event_id, {
method: 'GET',
}).then((response) => response.json())
.then((d) => {
this.setState({
data: d
})
})
fetch(backapi + "user/getUserById/" + notification.created_by, {
method: 'GET'
}).then((response) => response.json())
.then((data) => {
console.log("username socket", data);
})
})
}
获取错误使用socket
调用此方法时,未定义this.setState答案 0 :(得分:1)
传递给socket.on('notification', ...)
处理程序的函数从不同的上下文执行,因此this
的值不同。因此,您必须使用.bind()运算符明确地将上下文绑定到函数,或者只是传入arrow function这样:
socket.on('notification', (notification) => {
...
});