reactjs - ReactJS socket.io任何在套接字下定义或调用的函数都会给出类型错误而不是函数

标签 reactjs sockets socket.io

我试图从服务器中获取值(value)并更新客户端状态。该值可以通过控制台日志查看。但是,每当我调用一个函数时,它就会显示错误而不是一个函数。
此处显示“TypeError:this.setState不是函数”

客户:

import React, { Component } from 'react';
import Navbar from './navbar.js';
import RemPage from './rempage.js';
import socketIOClient from "socket.io-client";

class App extends Component {
constructor(props){
super(props);
this.state = {
  i:'Ahoy',
  endpoint: "http://127.0.0.1:34001"
};
}

componentDidMount() {
const {endpoint} = this.state;
const socket = socketIOClient(this.state.endpoint);
socket.on('connect', function() {
  socket.on("outgoing data",data => this.setState({i: data.num}));
});

//console.log(data.num)

}
render() {
 const {response} = this.state;
return (
  <div>
  <p> {this.state.i} </p>
  </div>);
}
};
export default App;

最佳答案

使用nextgen javascript箭头功能:

componentDidMount() {
   const {endpoint} = this.state;
   const socket = socketIOClient(endpoint);
   socket.on('connect', () => {
     socket.on("outgoing data",data => this.setState({i: data.num}));
   });
}

关于reactjs - ReactJS socket.io任何在套接字下定义或调用的函数都会给出类型错误而不是函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58060603/

相关文章:

Javascript 超出最大调用堆栈大小错误

css - 如何控制Material-UI垂直选项卡的宽度?

javascript - 无法读取未定义的属性 'indexOf' - React-sortable-hoc

reactjs - 无法获取与 React Router v4 一起使用的事件链接

reactjs - React 中的 Swiper.js 与 MUI 卡集成

perl - 了解操作系统/平台是否支持 IPv6 套接字以在 Perl 中收听 IPv4 的最佳方法是什么?

node.js - ngx-socket-io软件包在 Angular JS中不起作用

c - C中的网络; bind() 需要它的论点吗?

使用 Node.js 和 Socket.IO 单击时的 jQuery 函数

javascript - 手机锁定时 Socket.io 失去连接