如何在Signalr connection.on()中设置组件的状态

时间:2019-08-04 07:33:41

标签: javascript reactjs signalr

我想从带Signalr的服务器获取数据并更新React组件的内容。一切都好。从服务器接收的数据组件的状态无法更新(未定义)。

这是我的代码:

missing

3 个答案:

答案 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; 

但这不会通知组件重新渲染。

相关问题