我想从带Signalr的服务器获取数据并更新React组件的内容。一切都好。从服务器接收的数据组件的状态无法更新(未定义)。
这是我的代码:
missing
答案 0 :(得分:2)
setState
是一个函数,所以
this.setState = ({ message: msg })
应该是
this.setState({ message: msg })
此外,您的函数将无法访问您班级的this
。因此,您应该使用保留上下文的箭头功能,而不是普通的匿名功能:
notifConn.on("ReceiveMessage", (msg) => {
this.setState({ message: msg })
});
答案 1 :(得分:0)
您可以这样编写构造函数吗?
constructor(props) {
super(props);
this.position = { X: 'Right', Y: 'Top' }
this.state = { message:null}
}
并使用它来更改状态:this.setState({message:msg})
答案 2 :(得分:0)
您应该通过这种方式...
this.setState({ message: msg })
setState是一个函数,用于修改组件变量的当前状态并强制组件重新呈现结果。 尽管您可以这样做(强烈不推荐)
this.state.message = msg;
但这不会通知组件重新渲染。