我试图从服务器中获取值(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/